[英]Converting nested for-loops into a recursive function in Python
我试图创建一个代码来显示字符串的所有可能的排列而不使用itertools,所以我想出了如何使用这些丑陋的嵌套for循环来实现它的基本思路,但现在我想将其转换为对于长度为'n'的任何字符串的函数,我对递归有点新意,所以我需要一些帮助来解决这个问题。
wrdinp=input("Enter a word: ")
d=[]
#Works for string with length 4
for a in wrdinp:
for b in wrdinp:
if b!=a:
for c in wrdinp:
if c!=a and c!=b:
for d in wrdinp:
if d!=a and d!=b and d!=c:
d.append(a+b+c+d)
print("Permutations:",d)
我需要一个函数,它接受任意长度的字符串并返回一个包含字符串的各种排列的列表。
这是一种在递归中执行此操作的方法:
def permutations(wrdinp):
if len(wrdinp) <= 1:
return [wrdinp]
else:
d = []
for e in permutations(wrdinp[:-1]):
for i in range(len(e)+1):
d.append(e[:i] + wrdinp[-1] + e[i:])
return d
wrdinp=input("Enter a word: ")
result = permutations(wrdinp)
print(result)
希望能帮助到你 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.