Генерация списка всевозможных строк с добавлением точки
У меня есть строка, например 'abcd'. Мне нужно сгенерировать всевозможные вариации этой строки с добавлением точки, например:
'a.bcd'
'ab.cd'
'abc.d'
...
'a.b.cd'
'a.b.c.d'
'a.b.c.d.'
Ответы (1 шт):
Автор решения: Andy Pavlov
→ Ссылка
Можно скомбинировать список из строки abcd со списком из ['','.']. Из строк abcd делаем список ['','a','b','c','d']. С помощью itertools.product() делаем все возможные расположения под список символов из списка ['','.']. Потом суммируем через zip().
import itertools
text = 'abcd'
symbols = ['', *list(text)]
filler = ['','.'] # Список для создания комбинаций расположения пустого места и точки
combine = [list(zip(symbols, r)) for r in list(itertools.product(filler, repeat=len(symbols)))]
print(*[''.join([c for item in row for c in item]) for row in combine], sep='\n')
Вывод
abcd
abcd.
abc.d
abc.d.
ab.cd
ab.cd.
...
.a.b.c.d
.a.b.c.d.