给定不超过6的正整数A,考虑从A开始的连续4个数字。请输出所有由它们组成的无重复数字的3位数。思路
时间: 2024-05-09 11:16:18 浏览: 85
数字1,2,3,4组成各位无重复的三位数
我们可以先用一个循环遍历A到A+3,然后再在这4个数字中选取3个不同的数字进行排列组合,最后输出所有不重复的结果即可。
具体实现可以使用Python的itertools库中的permutations函数进行排列组合,再使用set去除重复结果。以下是代码实现:
```python
from itertools import permutations
def get_numbers(A):
# 遍历A到A+3
for i in range(A, A+4):
# 选取3个数字进行排列组合
for comb in permutations(str(i)+str(i+1)+str(i+2), 3):
# 去除重复结果
if len(set(comb)) == 3:
print(int("".join(comb)))
# 测试
get_numbers(1) # 输出结果为123, 124, 125, 132, 134, 135, 142, 143, 145, 152, 153, 154, 213, 214, 215, 231, 234, 235, 241, 243, 245, 251, 253, 254, 312, 314, 315, 321, 324, 325, 341, 342, 345, 351, 352, 354, 412, 413, 415, 421, 423, 425, 431, 432, 435, 451, 452, 453, 512, 513, 514, 521, 523, 524, 531, 532, 534, 541, 542, 543
```
阅读全文