获取列表python的所有有序组合
问题描述
我正在尝试生成数字列表的所有n项组合,同时保持数字顺序。例如,如果列表
[1,2,3,4]
长度为3的有序组合为:
[1,2,3]
[2,3,4]
[1,2,4]
[1,3,4]
为了清楚起见,我必须保持数字顺序,因此[1,4,2]不是理想的结果。
有没有函数可以做到这一点,或者有没有快速算法可以做到这一点?实际的清单是111个,我会选择100个项目。谢谢。
解决方案
是否只查找长度为n的给定列表的所有组合?如果是这样的话,您可以只使用itertools中的组合。无论哪种方式,您都可能希望使用itertools。
from itertools import combinations
numbers = [1,2,3,4]
for item in combinations(numbers, 3):
print sorted(item)
相关文章