一组数字的 m 位数字的所有可能排列的快捷方式



我一直在研究有限域。假设我有一个质数p=7.所以我得到了一个列表q=[0,1,2,3,4,5,6].现在我想要 set q 元素的所有可能排列,用于 7 个位置。例如 [1,1,1,4,6,3,1] 是可能的排列之一。python中是否有任何内置命令可以做到这一点?实际上,我正在使用更大的领域,其中P是127 (p=127).

这些不是排列,因为元素是重复的,这看起来更像是一个产品。

您可以在重复的q列表中使用itertools.product(此处为 3 个元素(:

import itertools
q=[0,1,2]   # or q = list(range(3))
for z in itertools.product(*(q,)*len(q)):  # using arg unpacking like if it was (q,q,q)
z = list(z) # to convert as list
print(z)

指纹:

[0, 0, 0]
[0, 0, 1]
[0, 0, 2]
[0, 1, 0]
[0, 1, 1]
[0, 1, 2]
...snip...
[2, 2, 0]
[2, 2, 1]
[2, 2, 2]

对于p=3,它会打印3**3 = 27值。如果p=127好...听起来不合理。

相关内容

最新更新