繁花如伊
給一個 Python Top-down Recursive 版本的作法:def gen(m, n, p=[]): if n==0: if m==0: yield p else: return else: for i in range(m+1): yield from gen(m-i, n-1, p+[i])for p in gen(4,3): print(p)結果:[0, 0, 4][0, 1, 3][0, 2, 2][0, 3, 1][0, 4, 0][1, 0, 3][1, 1, 2][1, 2, 1][1, 3, 0][2, 0, 2][2, 1, 1][2, 2, 0][3, 0, 1][3, 1, 0][4, 0, 0]我回答過的問題: Python-QA