Skip to content

Instantly share code, notes, and snippets.

@fogleman
Last active September 30, 2016 02:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fogleman/48696536bc112d729dbf26f22b0cf44a to your computer and use it in GitHub Desktop.
Save fogleman/48696536bc112d729dbf26f22b0cf44a to your computer and use it in GitHub Desktop.
def sum_factor(x, n, values):
if len(values) == n:
if x == 0:
print values
return
for i in xrange(x + 1):
values.append(i)
sum_factor(x - i, n, values)
values.pop()
sum_factor(10, 4, [])
'''
Outputs:
[0, 0, 0, 10]
[0, 0, 1, 9]
[0, 0, 2, 8]
[0, 0, 3, 7]
[0, 0, 4, 6]
[0, 0, 5, 5]
[0, 0, 6, 4]
[0, 0, 7, 3]
[0, 0, 8, 2]
[0, 0, 9, 1]
[0, 0, 10, 0]
[0, 1, 0, 9]
[0, 1, 1, 8]
[0, 1, 2, 7]
[0, 1, 3, 6]
[0, 1, 4, 5]
[0, 1, 5, 4]
[0, 1, 6, 3]
[0, 1, 7, 2]
[0, 1, 8, 1]
[0, 1, 9, 0]
[0, 2, 0, 8]
[0, 2, 1, 7]
[0, 2, 2, 6]
[0, 2, 3, 5]
[0, 2, 4, 4]
[0, 2, 5, 3]
[0, 2, 6, 2]
[0, 2, 7, 1]
[0, 2, 8, 0]
[0, 3, 0, 7]
[0, 3, 1, 6]
[0, 3, 2, 5]
[0, 3, 3, 4]
[0, 3, 4, 3]
[0, 3, 5, 2]
[0, 3, 6, 1]
[0, 3, 7, 0]
[0, 4, 0, 6]
[0, 4, 1, 5]
[0, 4, 2, 4]
[0, 4, 3, 3]
[0, 4, 4, 2]
[0, 4, 5, 1]
[0, 4, 6, 0]
[0, 5, 0, 5]
[0, 5, 1, 4]
[0, 5, 2, 3]
[0, 5, 3, 2]
[0, 5, 4, 1]
[0, 5, 5, 0]
[0, 6, 0, 4]
[0, 6, 1, 3]
[0, 6, 2, 2]
[0, 6, 3, 1]
[0, 6, 4, 0]
[0, 7, 0, 3]
[0, 7, 1, 2]
[0, 7, 2, 1]
[0, 7, 3, 0]
[0, 8, 0, 2]
[0, 8, 1, 1]
[0, 8, 2, 0]
[0, 9, 0, 1]
[0, 9, 1, 0]
[0, 10, 0, 0]
[1, 0, 0, 9]
[1, 0, 1, 8]
[1, 0, 2, 7]
[1, 0, 3, 6]
[1, 0, 4, 5]
[1, 0, 5, 4]
[1, 0, 6, 3]
[1, 0, 7, 2]
[1, 0, 8, 1]
[1, 0, 9, 0]
[1, 1, 0, 8]
[1, 1, 1, 7]
[1, 1, 2, 6]
[1, 1, 3, 5]
[1, 1, 4, 4]
[1, 1, 5, 3]
[1, 1, 6, 2]
[1, 1, 7, 1]
[1, 1, 8, 0]
[1, 2, 0, 7]
[1, 2, 1, 6]
[1, 2, 2, 5]
[1, 2, 3, 4]
[1, 2, 4, 3]
[1, 2, 5, 2]
[1, 2, 6, 1]
[1, 2, 7, 0]
[1, 3, 0, 6]
[1, 3, 1, 5]
[1, 3, 2, 4]
[1, 3, 3, 3]
[1, 3, 4, 2]
[1, 3, 5, 1]
[1, 3, 6, 0]
[1, 4, 0, 5]
[1, 4, 1, 4]
[1, 4, 2, 3]
[1, 4, 3, 2]
[1, 4, 4, 1]
[1, 4, 5, 0]
[1, 5, 0, 4]
[1, 5, 1, 3]
[1, 5, 2, 2]
[1, 5, 3, 1]
[1, 5, 4, 0]
[1, 6, 0, 3]
[1, 6, 1, 2]
[1, 6, 2, 1]
[1, 6, 3, 0]
[1, 7, 0, 2]
[1, 7, 1, 1]
[1, 7, 2, 0]
[1, 8, 0, 1]
[1, 8, 1, 0]
[1, 9, 0, 0]
[2, 0, 0, 8]
[2, 0, 1, 7]
[2, 0, 2, 6]
[2, 0, 3, 5]
[2, 0, 4, 4]
[2, 0, 5, 3]
[2, 0, 6, 2]
[2, 0, 7, 1]
[2, 0, 8, 0]
[2, 1, 0, 7]
[2, 1, 1, 6]
[2, 1, 2, 5]
[2, 1, 3, 4]
[2, 1, 4, 3]
[2, 1, 5, 2]
[2, 1, 6, 1]
[2, 1, 7, 0]
[2, 2, 0, 6]
[2, 2, 1, 5]
[2, 2, 2, 4]
[2, 2, 3, 3]
[2, 2, 4, 2]
[2, 2, 5, 1]
[2, 2, 6, 0]
[2, 3, 0, 5]
[2, 3, 1, 4]
[2, 3, 2, 3]
[2, 3, 3, 2]
[2, 3, 4, 1]
[2, 3, 5, 0]
[2, 4, 0, 4]
[2, 4, 1, 3]
[2, 4, 2, 2]
[2, 4, 3, 1]
[2, 4, 4, 0]
[2, 5, 0, 3]
[2, 5, 1, 2]
[2, 5, 2, 1]
[2, 5, 3, 0]
[2, 6, 0, 2]
[2, 6, 1, 1]
[2, 6, 2, 0]
[2, 7, 0, 1]
[2, 7, 1, 0]
[2, 8, 0, 0]
[3, 0, 0, 7]
[3, 0, 1, 6]
[3, 0, 2, 5]
[3, 0, 3, 4]
[3, 0, 4, 3]
[3, 0, 5, 2]
[3, 0, 6, 1]
[3, 0, 7, 0]
[3, 1, 0, 6]
[3, 1, 1, 5]
[3, 1, 2, 4]
[3, 1, 3, 3]
[3, 1, 4, 2]
[3, 1, 5, 1]
[3, 1, 6, 0]
[3, 2, 0, 5]
[3, 2, 1, 4]
[3, 2, 2, 3]
[3, 2, 3, 2]
[3, 2, 4, 1]
[3, 2, 5, 0]
[3, 3, 0, 4]
[3, 3, 1, 3]
[3, 3, 2, 2]
[3, 3, 3, 1]
[3, 3, 4, 0]
[3, 4, 0, 3]
[3, 4, 1, 2]
[3, 4, 2, 1]
[3, 4, 3, 0]
[3, 5, 0, 2]
[3, 5, 1, 1]
[3, 5, 2, 0]
[3, 6, 0, 1]
[3, 6, 1, 0]
[3, 7, 0, 0]
[4, 0, 0, 6]
[4, 0, 1, 5]
[4, 0, 2, 4]
[4, 0, 3, 3]
[4, 0, 4, 2]
[4, 0, 5, 1]
[4, 0, 6, 0]
[4, 1, 0, 5]
[4, 1, 1, 4]
[4, 1, 2, 3]
[4, 1, 3, 2]
[4, 1, 4, 1]
[4, 1, 5, 0]
[4, 2, 0, 4]
[4, 2, 1, 3]
[4, 2, 2, 2]
[4, 2, 3, 1]
[4, 2, 4, 0]
[4, 3, 0, 3]
[4, 3, 1, 2]
[4, 3, 2, 1]
[4, 3, 3, 0]
[4, 4, 0, 2]
[4, 4, 1, 1]
[4, 4, 2, 0]
[4, 5, 0, 1]
[4, 5, 1, 0]
[4, 6, 0, 0]
[5, 0, 0, 5]
[5, 0, 1, 4]
[5, 0, 2, 3]
[5, 0, 3, 2]
[5, 0, 4, 1]
[5, 0, 5, 0]
[5, 1, 0, 4]
[5, 1, 1, 3]
[5, 1, 2, 2]
[5, 1, 3, 1]
[5, 1, 4, 0]
[5, 2, 0, 3]
[5, 2, 1, 2]
[5, 2, 2, 1]
[5, 2, 3, 0]
[5, 3, 0, 2]
[5, 3, 1, 1]
[5, 3, 2, 0]
[5, 4, 0, 1]
[5, 4, 1, 0]
[5, 5, 0, 0]
[6, 0, 0, 4]
[6, 0, 1, 3]
[6, 0, 2, 2]
[6, 0, 3, 1]
[6, 0, 4, 0]
[6, 1, 0, 3]
[6, 1, 1, 2]
[6, 1, 2, 1]
[6, 1, 3, 0]
[6, 2, 0, 2]
[6, 2, 1, 1]
[6, 2, 2, 0]
[6, 3, 0, 1]
[6, 3, 1, 0]
[6, 4, 0, 0]
[7, 0, 0, 3]
[7, 0, 1, 2]
[7, 0, 2, 1]
[7, 0, 3, 0]
[7, 1, 0, 2]
[7, 1, 1, 1]
[7, 1, 2, 0]
[7, 2, 0, 1]
[7, 2, 1, 0]
[7, 3, 0, 0]
[8, 0, 0, 2]
[8, 0, 1, 1]
[8, 0, 2, 0]
[8, 1, 0, 1]
[8, 1, 1, 0]
[8, 2, 0, 0]
[9, 0, 0, 1]
[9, 0, 1, 0]
[9, 1, 0, 0]
[10, 0, 0, 0]
'''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment