我需要在Python中执行此操作。 有一个给定的列表l,可能包含超过5000个整数元素。 数字的总和有一个限制,20000或可能很高。 输出应该是所有2号的可能的和从列表, 等拍摄,从限制下的int列表中生成所有可能的组合
l=[1,2,3,4,5,6,7,8,9]
output
1+1,1+2,1+3,1+4,1+5,1+6...........
2+2,2+3,2+4.......
.........
.......
2,3,4,5,6... like that
我使用这个代码,这样做就目前而言, 但它很慢
l=listgen()
p=[]
for i in range(0,len(l)):
for j in range(i,len(l)):
k=l[i]+l[j]
if k not in p:
p.append(k)
p.sort
print(p)
listgen()
是生成输入列表的函数。
使用http://docs.python.org/library/itertools.html?highlight=itertools#itertools.combinations – 2012-08-03 09:12:14
你所说的限制意思?限额或输入列表的长度? – 2012-08-03 09:17:31
限制sum.sorry我没有提到 – Madushan 2012-08-03 09:20:03