我正在尝试编写一个递归函数来在 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
循环(递归情况)成为条件来添加基本情况:
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
关于python - 递归错误 : maximum recursion depth exceeded in comparison Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325713/