Python 运行4个数字的组合

Python 运行4个数字的组合,python,combinations,options,Python,Combinations,Options,我需要一个代码,将通过4个数字的可能组合运行,例如1234将产生1234,1243,1324的24个组合。。。等等。但不做[1',12',123',等]我希望它只有4个数字长度组合,(只是改变顺序) 一个长期的选择是 import random 随机化4个数字中的一个,随机化另一个和另一个,检查该组合是否已打印或类似地添加到保存可能组合的数组中,然后最终打印出所有组合 array = ['1234', '1243', '1342', '1324' ect] 但这需要很长时间,而且

我需要一个代码,将通过4个数字的可能组合运行,例如1234将产生1234,1243,1324的24个组合。。。等等。但不做[1',12',123',等]我希望它只有4个数字长度组合,(只是改变顺序)
一个长期的选择是

    import random
随机化4个数字中的一个,随机化另一个和另一个,检查该组合是否已打印或类似地添加到保存可能组合的数组中,然后最终打印出所有组合

array = ['1234', '1243', '1342', '1324' ect]

但这需要很长时间,而且效率很低。 非常新的编码:) 感谢使用以下功能的解决方案:

import itertools

n = '1234'
a = [''.join(i) for i in itertools.permutations(n, 4)]

print(a)   # prints 24 permutations
输出:

['1234', '1243', '1324', '1342', '1423', '1432', '2134', '2143', '2314', '2341', '2413', '2431', '3124', '3142', '3214', '3241', '3412', '3421', '4123', '4132', '4213', '4231', '4312', '4321']
解决方案使用和功能:

import itertools

n = '1234'
a = [''.join(i) for i in itertools.permutations(n, 4)]

print(a)   # prints 24 permutations
输出:

['1234', '1243', '1324', '1342', '1423', '1432', '2134', '2143', '2314', '2341', '2413', '2431', '3124', '3142', '3214', '3241', '3412', '3421', '4123', '4132', '4213', '4231', '4312', '4321']

您可以在python中使用内置模块
itertools
。参考已经提出的这个问题

应该给你这样的输出

(1, 2, 3, 4)
(1, 2, 4, 3)
(1, 3, 2, 4)
(1, 3, 4, 2)
(1, 4, 2, 3)
(1, 4, 3, 2)
(2, 1, 3, 4)
(2, 1, 4, 3)
(2, 3, 1, 4)
(2, 3, 4, 1)
(2, 4, 1, 3)
(2, 4, 3, 1)
(3, 1, 2, 4)
(3, 1, 4, 2)
(3, 2, 1, 4)
(3, 2, 4, 1)
(3, 4, 1, 2)
(3, 4, 2, 1)
(4, 1, 2, 3)
(4, 1, 3, 2)
(4, 2, 1, 3)
(4, 2, 3, 1)
(4, 3, 1, 2)
(4, 3, 2, 1)
如果需要将子列表连接成一个数字,可以使用提供的答案

提供以下输出

1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321

希望对您有所帮助

您可以在python中使用内置模块
itertools
。参考已经提出的这个问题

应该给你这样的输出

(1, 2, 3, 4)
(1, 2, 4, 3)
(1, 3, 2, 4)
(1, 3, 4, 2)
(1, 4, 2, 3)
(1, 4, 3, 2)
(2, 1, 3, 4)
(2, 1, 4, 3)
(2, 3, 1, 4)
(2, 3, 4, 1)
(2, 4, 1, 3)
(2, 4, 3, 1)
(3, 1, 2, 4)
(3, 1, 4, 2)
(3, 2, 1, 4)
(3, 2, 4, 1)
(3, 4, 1, 2)
(3, 4, 2, 1)
(4, 1, 2, 3)
(4, 1, 3, 2)
(4, 2, 1, 3)
(4, 2, 3, 1)
(4, 3, 1, 2)
(4, 3, 2, 1)
如果需要将子列表连接成一个数字,可以使用提供的答案

提供以下输出

1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321

希望这能有所帮助

也许这个问题能有所帮助:@boroboris我不希望它是'1''12''123',它会产生超过24个组合。将此添加到描述中。谢谢你的建议though@Mormin嗨,我是新来的。你能解释一下我的问题出了什么问题吗?谢谢这个问题可能会有帮助:@boroboris我不希望它是'1''12''123',它会产生超过24个组合。将此添加到描述中。谢谢你的建议though@Mormin嗨,我是新来的。你能解释一下我的问题出了什么问题吗?谢谢你的
list
调用没有添加任何内容。@DSM,是的,没有理由调用
list
调用,它是为了在开始时调试(在加入之前)。修复了您的
列表
调用在这里没有添加任何内容。@DSM,对,没有理由调用
列表
调用,它是在开始时(加入之前)进行调试的。固定的