Страницы

Поиск по вопросам

пятница, 20 марта 2020 г.

Постепенный вывод всех перестановок через генератор

#python_3x #python_37 #перестановка


Необходимо с момощью генератора вывести все перестановки списка в виде строки, начиная
с первого элемента и до их (неопределённого) полного количества. Пример:

arr = ['1','2','3']
for perm in all_perms():
    print(perm)


Должно вывести:

1
2
3
11
12
13
14
21
22
23
24
31
32
33
34
41
42
43
44
123
(и так далее)


Пробовал со стандартными функциями в itertools, но проблема в том, что там сразу
выводится список из кортежей, что не подходит, так как каждая перестановка должна быть
обработана в цикле. Заранее спасибо.
    


Ответы

Ответ 1



Это не перестановки, а размещения с повторениями. import itertools def f(seq): for n in range(1, len(seq) + 1): yield from itertools.product(seq, repeat=n) for row in f('123'): print(''.join(row)) 1 2 3 11 12 13 21 22 23 31 32 33 111 112 ...

Комментариев нет:

Отправить комментарий