Я хочу генерировать строки со всеми возможными комбинациями из двух символов определенной длины.Например, если я хочу сгенерировать все строки длиной 3 с символами 'a'
и 'b'
, я хочу следующий вывод (не в списке):
aaa
aab
aba
baa
bbb
bba
abb
bbb
Я определил две функции:
def replace(string,char):
y = string[1]
for i in range(1,len(string)):
string = string[:i].replace(y,char) + string[i:]
print(string)
def powerset(char1,char2,longitud):
"""FUnction to get all the combinations
of two characters of a certain length """
x = char1*longitud
print (x)
replace(x, char2)
y = char2* longitud
replace(y, char1)
print (y)
Если я запускаю код с длиной 3, я получаю только 6 из 8 комбинаций:
powerset('a','b',3)
aaa
baa
bba
abb
aab
bbb
Я все еще скучаю по bab
и aba
комбинации.Если я добавлю 4 в функцию powerset, я получу 8 из 16 возможных комбинаций.Должен быть самый простой способ решения проблемы, но я застрял.Есть ли у вас какие-либо идеи?