import copy
input_L = [1,2,3,4]
result = []
global tmp_answer
tmp_answer = []
def solve(input_L,res_sum,tmp_answer):
print input_L,res_sum,tmp_answer,'\n\n'
#滿足條件,輸出結果
if res_sum == 0:
x = sorted(copy.deepcopy(tmp_answer))
if x in result:
return
else:
result.append(x)
#不滿足條件,返回
elif res_sum <0 or len(input_L) == 0:
#tmp_answer.pop()
return
for i in range(0, len(input_L)):
d = input_L[i]
#1 取第i個做為組合
tmp_answer.append(d)
input_L.pop(i)
#2 獲取 res_sum-d 的組合結果
solve(input_L,res_sum-d,tmp_answer)
#3 放回i個
tmp_answer.pop()
input_L.append(d)
solve(input_L,6,tmp_answer)
print result