【发布时间】:2021-06-24 06:01:28
【问题描述】:
我正在尝试编写一个返回字符串增量的函数。例如,如果输入是“xx”,它应该返回 [xx, xy, xz, ya, yb, ..., zz, aa]。增加单个字符的功能没有问题
def incrementChar(char):
if char == "z":
return "a"
else:
return chr(ord(char)+1)
我尝试编写一个递归函数,它将输入的最后一个字符递增到“z”,取输入的倒数第二个字符并在让最后一个字符递增的同时将其递增再次从“a”运行到“z”。
我试过这段代码
def incrementString(string):
possibilities = []
for i in range(len(string)-1, -1, -1):
if i == len(string)-1 and string[i] != "z":
while string[i] != "z":
possibilities.append(string.replace(string[i], incrementChar(string[i])))
string = string.replace(string[i], incrementChar(string[i]))
print(string)
else:
incrementString(string[i:])
return possibilities
第一部分有效,它确实将最后一个字符运行到 z,然后将第二个字符增加到最后一个,但开始一次增加所有字符并在无限循环中中断。
我确信我正在监督一些非常明显的事情,(问题必须是倒数第二个字符在字母表中循环时没有被修复)也许有人可以帮助我......
谢谢!
【问题讨论】: