我遇到了一个问题,我需要列出字符串中所有可能替换的组合。例如,如果字符串是:
“ABCDXY1234ZEFGH”
可能的替换是(XY和Z不变):
字符 0 到 3 替换为“IJKL” 字符 6 至 9 替换为“5678” 字符 11 到 14 替换为“MNOP”
那么输出将是七个字符串:
ABCDXY1234ZMNOP, ABCDXY5678ZEFGH, ABCDXY5678ZMNOP, IJKLXY1234ZEFGH, IJKLXY1234ZMNOP, IJKLXY5678ZEFGH, IJKLXY5678ZMNOP.
你会如何进行这种组合?我尝试过 itertools 但还没有弄清楚。
谢谢互联网上的天才们。
您想使用 itertools 的产品
>>> from itertools import product
>>> L = [('ABC','UKL'),('XY',), ('1234','5678'),'Z', ('EFGH','MNOP')]
>>> for p in product(*L):
print(''.join(p))
ABCXY1234ZEFGH
ABCXY1234ZMNOP
ABCXY5678ZEFGH
ABCXY5678ZMNOP
UKLXY1234ZEFGH
UKLXY1234ZMNOP
UKLXY5678ZEFGH
UKLXY5678ZMNOP