itertools.permutation(iterate, r)
提供了一种方法来提供长度r
或len(iterate)
的一组排列。但是,如果 -
r> len(iterate)
举个例子。
list(intertools.permutation([0, 1, 2]))
回归......
[(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]
这是预料之中的。
但是让我们说我们希望r大于迭代的长度。也就是说,如果你在4的长度上迭代一个集合[0,1,2],你希望得到这样的答案,如下所示。
[[0, 0, 0, 0]
[0, 0, 0, 1]
[0, 0, 0, 2]
[0, 0, 1, 1]
[0, 0, 1, 2]
...
[2, 2, 1, 2]
[2, 2, 2, 0]
[2, 2, 2, 1]
[2, 2, 2, 2]]
但是当你尝试list(itertools.permutation([0, 1, 2], 4))
时,它返回[]
即空
如果有人知道这样做的方法,请告诉我。
尝试使用itertools.product(*iterables, repeat=1)
在你的情况下,你可以使用list(itertools.product(range(3), repeat=4))