首页 文章

RecursionError:比较Python时超出了最大递归深度

提问于
浏览
2

我正在尝试编写一个递归函数来在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, '')

任何人都知道错误是什么?

1 回答

  • 5

    你错过了一个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
    

    Try it!

相关问题