我想编写函数all_possible(word, n)
,其中word
是字符串,其中没有空格,n
是|
的个数。我需要把|
放在word
中,这样我的输出就是所有可能的字符串的列表,在字符之间插入|
例如:
letters = 'abcdefghijklmnopqrstuvwxyz'
print(all_possible(letters, 7)
>> ['a|b|c|d|e|f|g|hijklmnopqrstuvwxyz', 'a|b|c|d|e|f|gh|ijklmnopqrstuvwxyz', 'a|b|c|d|e|f|ghi|jklmnopqrstuvwxyz'...]
这就是我到目前为止所做的:
def all_possible(word, n):
word = list(word)
l = ['|'] * n
k = 1
for c in l:
word.insert(k, c)
k += 2
word = ''.join(word)
return word
现在需要帮忙吗
您将无法使用单个循环来完成此操作。您可以尝试使用
itertools.combination()
。例如,combos = combinations(range(1, 26), 7)
将为您提供一个迭代器,该迭代器列出您应该在之前插入栏的字母的所有索引(借助enumerate
来跟踪您要添加的字母数量:印刷品:
您可以将2更改为7,但需要注意的是,它有很多组合
您还可以递归地这样做,因为在每个字母之间插入一个单条就是一个循环。插入两个单条等同于插入一个单条,然后对单条后面的字符串执行相同的操作
l
的长度为480700:相关问题 更多 >
编程相关推荐