通过4个数字的组合运行

2022-03-23 00:00:00 python combinations options

问题描述

我需要一个代码,它将遍历4个数字的可能组合,例如,1234将产生1234,1243,1324的24个组合.ECT等。但不做[‘1’,‘12’,‘123’等]我只希望它是4个数字长度组合,(只是改变顺序)
较长的选项是

    import random

对4个数字中的一个进行随机化,对另一个数字进行随机化,再对另一个数字进行随机化,检查该组合是否已打印或类似操作已添加到包含可能的组合的数组中,然后最终打印出所有组合。

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


不过,这将需要很长时间,而且效率非常低。 对编码非常陌生:) 谢谢


解决方案

使用itertools.permutations()和str.join()函数的解决方案:

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']

相关文章