我想知道如何从python的n-length列表中获取所有可能的组合。但有一个问题。我很难解释,因为英语不是我的母语。所以我举个例子:
如果我有一个清单:
my_List = [1, 2, 3, 4]
我希望它能获得长度为3的输出
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 1, 4)
etc etc
但我不想重复列表。我的意思是,如果我已经
了(1, 1, 2)
我不需要
(1, 2, 1) and
(2, 1, 1)
这有什么意义吗?任何帮助都会被贬低
答案 0 :(得分:1)
使用itertools.combinations_with_replacement
:
>>> import itertools
>>> my_List = [1, 2, 3, 4]
>>> for xs in itertools.combinations_with_replacement(my_List, 3):
... print(xs)
...
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 1, 4)
(1, 2, 2)
(1, 2, 3)
...