标签: python recursion
我正在尝试编写一个递归函数以在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, '')
任何人都知道错误是什么吗?
答案 0 :(得分:6)
您错过了一个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!