2015-07-02 2 views
-6

Прежде всего, я хотел бы сообщить вам, что я не знаю о python. Я попытался разобраться в основах, изучив некоторые учебные пособия для начинающих, но я не могу даже обмануть их.Как получить все комбинации между 1 2 3 4 5 6 7 8 с использованием каждого числа после python

Поскольку у меня есть очень специфическая вещь, которую я хотел бы создать, я надеюсь, что кто-то здесь, кто мог бы помочь мне.

Мне нужны все возможные комбинации между цифрами 1,2,3,4,5,6,7,8 . Первый и последний номер всегда должны быть 1 , и цифры не могут использоваться дважды ,

, например:

1 2 3 4 5 6 7 8 1 - 
1 2 3 4 5 6 8 7 1 - 
1 2 3 4 5 7 8 6 1 - 
1 2 3 4 5 7 6 8 1 - 
1 2 3 4 5 8 6 7 1 - 
1 2 3 4 5 8 7 6 1 - 

и так далее :)

+0

Добро пожаловать на SO, как вы знаете SO не является службой кодировщик письменной форме! Итак, PLS дают [Минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) о том, что вы хотите сделать, или код, который вы пытались сделать до сих пор? – Kasramvd

+0

также вы не указали, как долго ваши последовательности должны быть –

+0

'import itertools itertools.permutations ([1,2,3])' – sinhayash

ответ

1

вы хотите permutations чисел 2 до 8, а затем просто добавить 1-х:

from itertools import permutations 

for combo in permutations(range(2, 9)): 
    combo = (1,) + combo + (1,) 
    print(combo) 

Demo :

>>> from itertools import permutations 
>>> for combo in permutations(range(2, 9)): 
...  combo = (1,) + combo + (1,) 
...  print(combo) 
... 
(1, 2, 3, 4, 5, 6, 7, 8, 1) 
(1, 2, 3, 4, 5, 6, 8, 7, 1) 
(1, 2, 3, 4, 5, 7, 6, 8, 1) 
(1, 2, 3, 4, 5, 7, 8, 6, 1) 
(1, 2, 3, 4, 5, 8, 6, 7, 1) 
(1, 2, 3, 4, 5, 8, 7, 6, 1) 
(1, 2, 3, 4, 6, 5, 7, 8, 1) 
(1, 2, 3, 4, 6, 5, 8, 7, 1) 
(1, 2, 3, 4, 6, 7, 5, 8, 1) 
# 
# ... many lines omitted 
# 
(1, 8, 7, 6, 4, 3, 2, 5, 1) 
(1, 8, 7, 6, 4, 3, 5, 2, 1) 
(1, 8, 7, 6, 4, 5, 2, 3, 1) 
(1, 8, 7, 6, 4, 5, 3, 2, 1) 
(1, 8, 7, 6, 5, 2, 3, 4, 1) 
(1, 8, 7, 6, 5, 2, 4, 3, 1) 
(1, 8, 7, 6, 5, 3, 2, 4, 1) 
(1, 8, 7, 6, 5, 3, 4, 2, 1) 
(1, 8, 7, 6, 5, 4, 2, 3, 1) 
(1, 8, 7, 6, 5, 4, 3, 2, 1) 
+0

Вы достаточно быстр – sinhayash

+0

@sinhayash: Это Martijn, который, как вы видите, является ниндзя кода. –

Смежные вопросы