Генерация вариантов над списком в Python

#python

#питон

Вопрос:

Позвольте мне иметь произвольный список положительных целых чисел:

 [2, 2, 3, 5]
 

Мне нужно написать код, который сгенерирует мне список всех произведений этих целых чисел, перечисленных следующим образом:

 1111, ..., 1115, 1121, ..., 1125, ... 1135, 1235, 2235.
 

Как мне это сделать?

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

1. Что вы имеете в виду варианты?

2. Откуда берется цифра 1?

3. В каком смысле это 1111 «вариант» [2, 2, 3, 5] ?

4. посмотрите на пакет itertools

5. а) Четко сформулируйте вопрос, т. Е. Определите «вариант». б) Отправьте нам свой код на данный момент и укажите, что в нем не так. Или же это заслуживает того, чтобы быть закрытым как «Дайте мне код» из- за отсутствия усилий.

Ответ №1:

 import itertools
itertools.product(range(1,3), range(1,3), range(1,4), range(1,6))
 

Документы здесь: https://docs.python.org/3/library/itertools.html#itertools.product

Более общее решение:

 itertools.product(*[range(1, n 1) for n in list_nums])
 

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

1. В python 3 он будет создавать итератор ?!

2. @volcano это вопрос или возражение? Да, в Python 3 это приведет к созданию itertools.product объекта, который является генератором. Я думаю, что это делает что-то подобное в Python 2

3. Проблема в том, что я должен сделать это с произвольным списком.

4. Вы можете привести это к списку с помощью list(...)

5. Я имею в виду, что у меня есть произвольное количество чисел в этом списке. У меня могло бы быть 5, или 10, или 100, или больше.