【发布时间】:2017-01-30 08:12:11
【问题描述】:
def perms(s):
'''(str) -> list of str
Return all permutations of s.
'''
if s == '':
return ['']
smaller = perms(s[1:])
print(smaller)
bigger = []
for p in smaller:
for i in range(len(p) + 1):
new_perm = p[:i] + s[0] + p[i:]
bigger.append(new_perm)
return bigger
perms('abc')
这是我教授的代码。我了解了此代码的递归是如何工作的,但似乎无法弄清楚等于“cb”有多小
烫发('abc')
s[1:] ='bc'
烫发('bc')
s[1:]='c'
烫发('c')
s[1:]=''
【问题讨论】:
-
欢迎来到 Stack Overflow!您可以先take the tour,然后学习如何创建Minimal, Complete, and Verifiable 示例。这让我们更容易为您提供帮助。
标签: python-3.x recursion