Python 如何将1个字符串替换为2个字符串中的任意一个

Python 如何将1个字符串替换为2个字符串中的任意一个,python,python-3.x,string,replace,Python,Python 3.x,String,Replace,说我有这个 string=SSTTFSSFFST 现在我想用X或Y替换每个F,因此结果就像使用python 3x一样: new_string = SSTTXSSXXST, SSTTXSSXYST, SSTTXSSYXST, SSTTXSSYYST, SSTTYSSXXST, SSTTYSSXYST, SSTTYSSYXST, SSTTYSSYYST 这是一种解决方案,尽管不是最有效的: from itertools import permutations, combinations str

说我有这个

string=SSTTFSSFFST

现在我想用X或Y替换每个F,因此结果就像使用python 3x一样:

new_string =  SSTTXSSXXST, SSTTXSSXYST, SSTTXSSYXST, SSTTXSSYYST, SSTTYSSXXST, SSTTYSSXYST, SSTTYSSYXST, SSTTYSSYYST

这是一种解决方案,尽管不是最有效的:

from itertools import permutations, combinations

string = "SSTTFSSFFST"
n = string.count('F')
replacements = 'XY' * n
strings = []
for chars in set(combinations(replacements, n)):
    s = string
    for char in chars:
        s = s.replace('F', char, 1)
    strings.append(s)
print(sorted(strings))
这导致:

['SSTTXSSXXST', 'SSTTXSSXYST', 'SSTTXSSYXST', 'SSTTXSSYYST', 
 'SSTTYSSXXST', 'SSTTYSSXYST', 'SSTTYSSYXST', 'SSTTYSSYYST']

请浏览、和,以了解此网站的工作原理,并帮助您改进当前和未来的问题,从而帮助您获得更好的答案。“演示如何解决此编码问题?”与堆栈溢出无关。您必须诚实地尝试解决方案,然后询问有关实现的具体问题。堆栈溢出不是用来替换现有教程和文档的。什么标准决定是否使用X或Y替换?@gregory OP只需要所有变体。请参见生成的新字符串。