【发布时间】:2020-12-09 09:59:13
【问题描述】:
这是我目前的代码:
from itertools import combinations, product
string = "abcd012345"
char = "01268abc"
for i, j in combinations(tuple(range(len(string))), 2):
for char1, char2 in product(char, char):
print(string[:i] + char1 + string[i+1:j] + char2 + string[j+1:])
所以,字符串是 abcd012345,我更改了两个字符以找到所有可能的组合。字符是 01268abc。在这个例子中,我们得到了 2880 个组合。
目标是设置哪些字符将出现在字符串的指定位置。下面的例子:
from itertools import combinations, product
string = "abcd012345"
# place 0123456789
char_to change_for_place0 = "ab02"
char_to change_for_place1 = "14ah"
char_to change_for_place2 = "94nf"
char_to change_for_place3 = "a"
char_to change_for_place4 = "9347592"
char_to change_for_place5 = "93478nvg"
char_to change_for_place6 = "b"
char_to change_for_place7 = ""
char_to change_for_place8 = ""
char_to change_for_place9 = "84n"
for i, j in combinations(tuple(range(len(string))), 2):
for char1, char2 in product(char, char):
print(string[:i] + char1 + string[i+1:j] + char2 + string[j+1:])
注意:
- 有些地方可以是空的,并保持与地方 7 和 8 相同。
- 地点数将是 64 个。
- 要更改的字符数为 4,而不是示例中的 2。
我很乐意从您的解决方案和想法中学习,谢谢。
【问题讨论】:
标签: python combinations itertools