【发布时间】:2012-10-12 01:19:50
【问题描述】:
我有一个字符串列表:
l = ['a', 'b', 'c']
我想在不同大小的组中创建列表元素的所有可能组合。我希望这是一个元组的列表,但它也可以是列表的列表等。元组的顺序和元组中的元组的顺序无关紧要。元组或元组的元组中都不能重复列表元素。对于上面的列表,我希望是这样的:
[(('a'),('b'),('c')),
(('a', 'b'), ('c')),
(('a', 'c'), ('b')),
(('b', 'c'), ('a')),
(('a', 'b', 'c'))]
非常感谢任何帮助。
编辑: 我确实要求列表中的每个元组都包含 l 的所有元素。 senderle 和 Antimony,关于遗漏,您都是正确的。
【问题讨论】:
-
你的意思是
a, (b,c,d)也在那里吗? -
这个功能
itertools.combinations(iterable, r)可能对你有帮助。 -
不要
(('a', 'b'), ('c', 'd'))、(('b', 'c'), ('a', 'd'))和(('a', 'c'), ('b', 'd'))也属于输出? -
@gavinmh 也许更短的示例输入会更清楚。
标签: python list recursion tuples combinations