n = 5 a = [0] * n def backtrack(i, sum): if i > 0 and sum > i-1: return if i == n: if sum == n-1: print(a) return for e in range(n-sum): a[i] = e backtrack(i + 1, sum+e) backtrack(0, 0)
Standard input is empty
[0, 0, 0, 0, 4] [0, 0, 0, 1, 3] [0, 0, 0, 2, 2] [0, 0, 0, 3, 1] [0, 0, 1, 0, 3] [0, 0, 1, 1, 2] [0, 0, 1, 2, 1] [0, 0, 2, 0, 2] [0, 0, 2, 1, 1] [0, 1, 0, 0, 3] [0, 1, 0, 1, 2] [0, 1, 0, 2, 1] [0, 1, 1, 0, 2] [0, 1, 1, 1, 1]