Как я могу получить перестановки с 3 или 4 цифрами с помощью itertools?

#python

Вопрос:

 from itertools import permutations 
print(list(permutations(range(1,6))))
 

это дает только 5-значные числа, но я также хочу 3-значные и 4 — значные.
Вывод этого кода выглядит как 12543, 45321 и т.д. Все это просто дает 5-значное число.
Вывод, который я хочу, — 123, 312, 4321, а также 23415 и т. Д. Мне нужны все возможные числа из 3 цифр, 4 цифр и 5 цифр

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

1. Пожалуйста, обновите свой вопрос, указав необходимые выходные данные.

2. Я отредактировал его, пожалуйста, обратитесь

3. Поскольку теперь вы знаете, как получить желаемый результат для 5 цифр, можете ли вы не просто написать цикл, который повторяет один и тот же код, но вместо 5, для 3, а затем для 4 цифр?

Ответ №1:

существует r параметр, например itertools.permutations([1,2,3], r=2) , который будет генерировать все возможные перестановки, выбирая 2 элемента: [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]

Ответ №2:

Хорошо, так что просто запросите все длины отдельно:

 p = []
for i in range(4, 7):
    p  = list(permutations(range(1, i)))

for item in p:
    print(item)