我希望有一个' Pythonic'这样做的方式。让我们说我有一个列表和一个整数。
foo = [1, 2]
bar = 2
我想返回一系列列表,其中每个列表是由整数(或长度-1)指定的长度,其中列表表示列表中每个可能的值组合的表达式。因此,例如,我正在寻找的输出将是这样的:
>> [[1, 1], [1, 2], [2, 1], [2, 2]]
如果bar等于3,则:
>> [[1, 1, 1], [1, 1, 2], [1, 2, 2], [2, 1, 2], [2, 2, 1], [1, 2, 1], [2, 1, 1], [2, 2, 2]]
......等等。
答案 0 :(得分:2)
>>> import itertools
>>> foo = [1,2]
>>> list(itertools.product(foo, repeat=2))
[(1, 1), (1, 2), (2, 1), (2, 2)]
>>> list(itertools.product(foo, repeat=3))
[(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2)]
>>>