如何列出具有多个给定替换的字符串中所有可能的组合?

问题描述 投票:0回答:1

我遇到了一个问题,我需要列出字符串中所有可能替换的组合。例如,如果字符串是:

“ABCDXY1234ZEFGH”

可能的替换是(XY和Z不变):

字符 0 到 3 替换为“IJKL” 字符 6 至 9 替换为“5678” 字符 11 到 14 替换为“MNOP”

那么输出将是七个字符串:

ABCDXY1234ZMNOP, ABCDXY5678ZEFGH, ABCDXY5678ZMNOP, IJKLXY1234ZEFGH, IJKLXY1234ZMNOP, IJKLXY5678ZEFGH, IJKLXY5678ZMNOP.

你会如何进行这种组合?我尝试过 itertools 但还没有弄清楚。

谢谢互联网上的天才们。

python string jupyter-notebook permutation
1个回答
0
投票

您想使用 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
© www.soinside.com 2019 - 2024. All rights reserved.