使用Python生成两个字符串的组合

2024-10-02 16:26:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串str1=“ABC”,我需要在字符串str1中插入0到len(str1)个“x”数,除了最后一个位置。在

所以在上面的例子中,我想要一个结果列表,其中0到2“x”放在字符串之前或内部,如下所示

["ABC",
 "xABC",
 "AxBC",
 "ABxC",
 "xxABC",
 "xAxBC",
 "xABxC",
 "AxxBC",
 "AxBxC",
 "ABxxC"]

我尝试了一些代码,如下所示(我确实意识到我错过了一些组合):

^{pr2}$

我真的不太确定如何处理另一个案例,比如xAxBC等

解决这个问题的最佳方法是什么?在


Tags: 字符串列表len例子abcstr1axbxcxabc
1条回答
网友
1楼 · 发布于 2024-10-02 16:26:54

使用^{}获取要插入xs的索引:

import itertools

str1 = "ABC"
lst = list(str1)
for n in range(len(str1)):
    for idxs in itertools.combinations_with_replacement(range(len(str1)), n):
        xs = lst[:]
        for i in reversed(idxs): # Use reversed, otherwise index become invald
            xs.insert(i, 'x')
        print(''.join(xs))

输出:

^{pr2}$

相关问题 更多 >