Помогите пожалуйста советом - существует ли какой-нибудь "элегантный" способ цикличного добавления элементов из сета в лист? Потому как мне лишь пока в голову приходят бесконечные nested loops.
Суть в том что мне необходимо получить все возможные варианты для заданной последовательности, например есть паттерн: 'ATG' - для него мне нужно сначала заменить [0] элемент - получится:
ATG (тут как бы замена А на А)
TTG
GTG
CTG
далее надо взять ATG (первый из четырех) и в нем заменить уже [1] элемент - получится:
AAG
ATG
AGG
ACG
теперь УЖЕ в этом листе взять AAG и в нем заменить [2] - получится:
AAA
AAT
AAC
AAG
разумеется это я показал лишь для первого элемента в каждой итерации - в конечном итоге мне необходимо таким образом перебрать все элементы листа в каждой итерации и для каждого провести замену последующей буквы, которая соответствует номеру итерации.
Если буква одна - получится 4 варианта, если 2 - соответственно 16 и так далее (4**n)
пока что мне единственным способом кажется такое решение: но что-то подсказывает что это чушь собачья.
pat = 'ATG'
tst = list(pat)
for i in range(len(tst)):
for y in {'A','T','G','C'}:
tst[i]=y
print(tst)
tst = list(pat)