我编写的代码返回一个列表,其中包含字母alpha中给定长度的所有字符串,没有特定的顺序。例如:
all_strings({0, 1}, 3))
应该返回
['000', '001', '010', '011', '100', '101', '110', '111']
这两个功能:
def all_strings(alpha, length):
alpha_list = [] # store in a list the elements in the set alpha
for symbol in alpha:
alpha_list.append(symbol)
if length == 1:
return alpha_list
else:
return recurs_func(alpha, length, alpha_list)
def recurs_func(alpha, length, update_list):
new_list = [] # list to store new strings
for j in alpha:
for k in update_list:
new_list.append(j+k)
if length == 2: # done creating strings of desired length
return new_list
else:
recurs_func(alpha, length-1, new_list)
代码工作正常,除非我选择长度为> = 3,在这种情况下返回None并想知道如何解决这个问题。
答案 0 :(得分:0)
你忘记了最后一行的回复。它应该是:
return recurs_func(alpha, length-1, new_list)
答案 1 :(得分:0)
在recurs_func
中,如果length
不是2,则进行递归调用,但不返回任何内容。