使用itertools从列表中获取所有组合

时间:2013-10-26 05:52:07

标签: python combinations itertools

我正在处理项目Euler的问题,我需要获得在列表中添加int元素的所有组合,

from itertools import combinations
evenAbs = [12, 18, 20, 24, 30,36]
evenCombs =  sorted(([i+j for i,j in combinations(evenAbs, 2)]))

我的问题是我需要组合包括12 + 12 18 + 18等。 我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

使用itertools.combinations_with_replacement

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