获取列表元素的所有组合,而不是忽略Python中的位置

时间:2014-10-26 17:32:43

标签: python python-2.7 python-2.x

我想将列表的所有元素组合成具有指定长度的子列表(而不是元组)。

itertools.combinations_with_replacement生成器几乎完成了我想要实现的目标:

>>> list(itertools.combinations_with_replacement([1,2],2))
[(1, 1), (1, 2), (2, 2)]

我只有两件事我不喜欢:它会创建元组而不是子列表(我可以用地图更改),它会错过上例中的元素(2,1)

Python 2中是否有任何内置模块能够满足我的需求?如果没有,是否有任何简单的方法至少得到combinations_with_replacements(或任何其他模块函数)来生成提供的示例中缺少的元素?

1 个答案:

答案 0 :(得分:1)

也许:

>>> from itertools import product
>>> list(product([1, 2], repeat=2))
[(1, 1), (1, 2), (2, 1), (2, 2)]