2013-10-26 2 views
0

를 사용하여 목록에서 모든 조합을 얻기 나는내가 프로젝트 오일러에 문제가 일하고 itertools

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

내 문제는 내가 조합을 필요로하고, 목록에있는 요소하는 int 추가의 모든 조합을 얻을 필요 12 + 12 18 + 18 등이 포함됩니다. 어떻게해야합니까?

답변

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)] 
+0

감사 만, 내 대답은 조합 자체에 값을 추가하지 않은 몇 시간 후까지 실현되지 데 정답 오프 수백의 AA 몇되었으며, combinations_with_replacement는 않았다 정확히 내가 필요! –