【发布时间】:2021-02-10 21:09:45
【问题描述】:
我正在尝试编写一个程序,该程序在匹配特定字符串之前测试每个可能的字符串,并尝试给出数字。举个例子:
a = {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j', 10: 'k', 11: 'l', 12: 'm',
13: 'n', 14: 'o', 15: 'p', 16: 'q', 17: 'r', 18: 's', 19: 't', 20: 'u', 21: 'v', 22: 'w', 23: 'x', 24: 'y',
25: 'z'}
word = 'bike'
found = False
counter = 0
for i in range(len(a)):
for j in range(len(a)):
for k in range(len(a)):
for m in range(len(a)):
string = f'{a[i]}{a[j]}{a[k]}{a[m]}'
counter += 1
print(string, counter)
if string == word:
found = True
break
if found:
break
if found:
break
if found:
break
输出看起来像这样:
aaaa 1
aaab 2
aaac 3
aaad 4
aaae 5
aaaf 6
...
bijz 23244
bika 23245
bikb 23246
bikc 23247
bikd 23248
bike 23249
如果您知道单词总是四个字符,则可以使用此代码,但如果您不知道长度怎么办?当长度未知时,您将如何创建它?我试图考虑是否有一些递归函数可以实现这一点,但没有任何效果。我试图实现的程序将有这样的输出:
a 1
b 2
c 3
...
aa 27
ab 28
ac 29
...
ba #
bb #
bc #
...
aaa #
aab #
aac #
【问题讨论】:
标签: python python-3.x loops recursion