Как сделать так, чтобы все числа в списке (перестановка) умножались на меньший код?

#python #python-3.x #permutation

#python #python-3.x #перестановка

Вопрос:

Моя проблема в том:

     perm_list = list(range(a,b,-1))
    if len(perm_list) == 1:
       print(perm_list[0])
    elif len(perm_list) == 2:
       print(perm_list[0]* perm_list[1])
    elif len(perm_list) == 3:
 

Я не могу найти способ уменьшить это, если я смогу это сделать, было бы здорово.
Потому что я сделаю это до 15, если я напишу это 15 раз, это будет больше и сложнее написать для меня.
Если есть меньший способ сделать это, не могли бы вы, ребята, сказать мне, пожалуйста?

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

1. Пожалуйста, объясните, что вы пытаетесь сделать. Ваш код не очень понятен. Вы не привели достаточно примера, чтобы понять, что вы пытаетесь сделать. Как будет elif выглядеть 15-е число?

2. Я пытаюсь сделать перестановку, например, вы поставите 2 числа P (a.b)

3. И максимальное число равно 15

4. если вы поставите 15 и 2, это будет p (15,2), и оно должно быть 15,14

5. Похоже, вы просто умножаете все элементы в списке?

Ответ №1:

Просто используйте itertools библиотеку

 from itertools import permutations
lst = list(range(3))
result = list(permutations(lst, 2))
print(result)
=> [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
print(list(permutations(lst, 3)))
=>  [(0, 1, 2), (0, 2, 1), (1, 0, 2), (1, 2, 0), (2, 0, 1), (2, 1, 0)]