【发布时间】:2017-05-01 20:05:03
【问题描述】:
生成列表的所有组合的最佳方式是什么,其中每个组合都包含列表中的每个项目,并且您可以在其中组合其他项目。
例如,对于一个列表['a','b','c'],我喜欢生成:
['a','b','c']
['ab','c']
['a','bc']
['abc']
我觉得它有点类似于:Python: Generating all ordered combinations of a list。但是这个只关心切片。我想要从列表中获取每个项目的所有组合。是否有来自 itertools 的内置函数可用于生成答案?
列表也可以是数字,可能有重复值。例如:[1,2,1] 应该生成:
[1,2,1]
[12,1]
[1,21]
[121]
我可以尝试使用链接中的代码,但不是生成项目组合,而是根据列表的索引生成组合。我取所有以 0 开头的组合,然后查找下一个项目并查找以该项目开头的所有组合,依此类推。不过我认为这不会有效。
【问题讨论】:
标签: python list combinations