【发布时间】:2023-03-09 14:38:01
【问题描述】:
我有一个字符串列表:
li = ['a', 'b', 'c', 'd']
在 Python 中使用以下代码,我为列表 li 生成了所有可能的字符组合,并得到了 256 个字符串的结果。
from itertools import product
li = ['a', 'b', 'c', 'd']
for comb in product(li, repeat=4):
print(''.join(comb))
比如说,我知道li列表中字符串的第二个和第四个位置的字符是'b'和'c'。
所以结果将是一组只有 16 个字符串,即:
abac
abbc
abcc
abdc
bbac
bbbc
bbcc
bbdc
cbac
cbbc
cbcc
cbdc
dbac
dbbc
dbcc
dbdc
如何得到这个结果?有没有一种 Pythonic 方法来实现这一点? 谢谢。
编辑:我想要的列表 li 的大小是 a 到 z,repeat 的值是 13。当我尝试上面的代码时,编译器抛出内存错误!
【问题讨论】:
-
包含测试的列表理解
-
大声笑。但好消息是,我知道这 13 个字符中的 6 个。所以它会达到数百万!
标签: python string combinations itertools