kru*_* kp 2 python combinations list permutation python-3.x
这不打印任何内容:
from itertools import combinations
comb = combinations([1,2], 3)
for i in comb:
print(i)
Run Code Online (Sandbox Code Playgroud)
我想输出为:
(1,2,2) (1,2,1) (1,1,2) (1,1,1) (2,1,2) (2,1,1) (2,2,1) (2,2,2)
Run Code Online (Sandbox Code Playgroud)
似乎您只想要product, 而不是combinations:
from itertools import product
for i in product([1, 2], repeat=3):
print(i)
Run Code Online (Sandbox Code Playgroud)
combinations正在为您提供独特的组合,而无需在任何组合中重复使用元素,这意味着从两个源元素中提取三个元素是不可能的。它也是顺序不敏感的,所以它不会给你(1, 2),(2, 1)即使你只要求大小的组合2(只permutations会这样做)。在您的情况下,您似乎希望通过每个索引循环每个元素,允许重复(combinations/permutations不会这样做)和顺序敏感(combinations_with_replacement不会这样做),这会留下product.