Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def helper(slate,problem,idx,target,length):
- if sum(slate) == target:
- return [slate]
- if idx == length or sum(slate) > target or target - sum(slate) > sum(problem[idx:]):
- return []
- else:
- count = 1
- current = idx
- while idx+1 < length and problem[idx] == problem[idx+1]:
- count = count + 1
- idx = idx + 1
- results = []
- for i in range (0,count+1):
- results += helper(slate + [problem[current]]*i,problem,idx+1,target,length)
- return results
- def generate_all_combinations(arr, target):
- arr.sort()
- return helper([],arr,0,target,len(arr))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement