Задать вопрос
@Gast0n

Как сделать генерацию вариантов?

Здравствуйте. Подскажите функцию, как сгенерировать все возможные варианты и сохранить их в список.
Например:
name = 'sasha'
surname = 'petrov'
birth_date = '11.01.1985' # тут еще желательно разбить по точке
nickname = 'sanek'

Мне нужно, чтобы у меня были вариант вида:
sashapetrov, sasha11011985, sasha11, sasha 01, sashasanek,

и т.д. Вообщем что бы получить все возможные комбинации из этих значений. Их тут получается 6
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
from itertools import permutations
name = 'sasha'
surname = 'petrov'
birth_date = '11.01.1985' # тут еще желательно разбить по точке
nickname = 'sanek'

for j in range(3):
    for im in permutations(birth_date.split('.'), j+1):
      for x in permutations([name, surname, nickname, ''.join(im)], 2):
          print(''.join(x))


sashapetrov
sashasanek
sasha19850111
petrovsasha
petrovsanek
petrov19850111
saneksasha
sanekpetrov
sanek19850111
19850111sasha
19850111petrov
19850111sanek
sashapetrov
sashasanek
sasha19850111
petrovsasha
petrovsanek
petrov19850111
saneksasha
sanekpetrov
sanek19850111
19850111sasha
19850111petrov
19850111sanek
sashapetrov
sashasanek
sasha19850111
petrovsasha
petrovsanek
petrov19850111
...

единственно - много повторений будет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Gast0n Автор вопроса
Спасибо. у меня вот такой код получился

import itertools

info = ['maria', 'ivanova', '12', '05', '1995', 'masha']

base = list(itertools.combinations_with_replacement(info, 3))

print(base)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы