Python实现1、2、3、4组成无重复三位数的两种方法

阿橙
阿橙
发布时间:2026-10-13| 2人浏览过
原创

本文介绍如何使用Python将数字1、2、3、4组合成互不相同且无重复的三位数。通过双重解析题目逻辑,提供了两种实现方案:一是利用三层循环遍历并判断位数互异;二是结合列表与集合特性,通过长度校验去除重复元素。文章包含完整代码示例及输出结果分析,适合Python初学者理解基础算法逻辑。

题目要求:给定四个数字1、2、3、4,计算能够组成多少个互不相同且各位数字不重复的三位数,并列出所有可能的组合。

解题思路:百位、十位和个位上的数字均可从1、2、3、4中选取。核心逻辑是生成所有可能的排列组合,随后筛选出满足“三位数字互不相同”条件的结果。

代码实现方案

第一种方法:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
for i in range(1,5):
 for j in range(1,5):
  for k in range(1,5):
   if( i != k ) and (i != j) and (j != k):
    print i,j,k

上述代码执行后的输出结果如下所示:

1 2 3 1 2 4 1 3 2 1 3 4 1 4 2 1 4 3 2 1 3 2 1 4 2 3 1 2 3 4 2 4 1 2 4 3 3 1 2 3 1 4 3 2 1 3 2 4 3 4 1 3 4 2 4 1 2 4 1 3 4 2 1 4 2 3 4 3 1 4 3 2

第二种方法:

利用集合(set)的数据特性自动去除重复元素。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

import pprint

list_num = ['1','2','3','4']
list_result = []
for i in list_num:
 for j in list_num:
  for k in list_num:
   if len(set(i + j + k)) == 3:
    list_result += [int(i + j + k)]
print("能组成%d个互不相同且无重复数字的三位数:"%len(list_result))
pprint.pprint(list_result)

最终的输出内容与第一种方法一致,但需要注意的是,该方法的中间处理过程或最终呈现形式可能涉及集合数据结构。

总结

以上是关于使用Python生成由1、2、3、4组成的无重复三位数的完整解析。希望这些内容能为您提供帮助。如果您对更多技术专题感兴趣,欢迎查阅本站其他文章。如有任何疑问或建议,欢迎在评论区留言交流。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。