我正在尝试编写一个递归函数来在python中打印某种排列 . 但是出于某种原因我得到了最大深度误差 .
def perm(chars, k, word): if k == 0: print(word) for char in chars: perm(chars, k - 1, char + word) perm(['1','2'], 2, '')
任何人都知道错误是什么?
你错过了一个base case,导致你的调用堆栈为overflow . 通过使 for 循环(递归情况)有条件来添加基本案例:
for
def perm(chars, k, word): if k == 0: print(word) else: for char in chars: perm(chars, k - 1, char + word) perm(['1','2'], 2, '')
输出:
11 21 12 22
Try it!
1 回答
你错过了一个base case,导致你的调用堆栈为overflow . 通过使
for
循环(递归情况)有条件来添加基本案例:输出:
Try it!