n = 12
s = 39
k = s
def myAns(n=12,k=39,rest = []):
#rest 保存结果,传参用
global s
if k==0 or n==1:
rest.append(n)
if sum(rest)==s:
print("组合{0},{1}".format(rest,sum(rest)))
#return rest
elif k>n:
rest.append(n)
return myAns(n-1,k-n,rest)
else:
return myAns(n-1,k,rest)
for i in range(1,n+1):
myAns(i,k,[])
运行结果:
组合[9, 8, 7, 6, 5, 3, 1],39
组合[10, 9, 8, 7, 4, 1],39
组合[11, 10, 9, 8, 1],39
组合[12, 11, 10, 5, 1],39