gpt4 book ai didi

python - 将嵌套的 for 循环转换为 Python 中的递归函数

转载 作者:行者123 更新时间:2023-11-28 16:56:59 25 4
gpt4 key购买 nike

我试图创建一个代码来显示一个字符串的所有可能排列而不使用 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)

希望对您有所帮助:)

关于python - 将嵌套的 for 循环转换为 Python 中的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com