我正在尝试编写一个递归函数来在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, '')
Run Code Online (Sandbox Code Playgroud)
任何人都知道错误是什么?
您错过了一个基本案例,导致您的调用堆栈溢出.通过使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, '')
Run Code Online (Sandbox Code Playgroud)
输出:
11
21
12
22
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1315 次 |
| 最近记录: |