def print_sums(target, current_sum=0, current_numbers=[]):
if current_sum == target:
print(" + ".join(map(str, current_numbers)), "=", target)
for i in range(1, target+1):
if current_sum + i <= target:
print_sums(target, current_sum + i, current_numbers + [i])
return
print_sums(5)
ZGVmIHByaW50X3N1bXModGFyZ2V0LCBjdXJyZW50X3N1bT0wLCBjdXJyZW50X251bWJlcnM9W10pOgogICAgaWYgY3VycmVudF9zdW0gPT0gdGFyZ2V0OgogICAgICAgIHByaW50KCIgKyAiLmpvaW4obWFwKHN0ciwgY3VycmVudF9udW1iZXJzKSksICI9IiwgdGFyZ2V0KQogICAgZm9yIGkgaW4gcmFuZ2UoMSwgdGFyZ2V0KzEpOgogICAgICAgIGlmIGN1cnJlbnRfc3VtICsgaSA8PSB0YXJnZXQ6CiAgICAgICAgICAgIHByaW50X3N1bXModGFyZ2V0LCBjdXJyZW50X3N1bSArIGksIGN1cnJlbnRfbnVtYmVycyArIFtpXSkKICAgIHJldHVybgoKcHJpbnRfc3Vtcyg1KQo=