2015-09-12 3 views
1

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

Для я = 5, как много различных способов 0 и 1 может занимать пять мест, как

00000 
00001 
00010 
00011 
00100 
. 
. 
. 
. 
11111 

для я = 6, сколькими способами 0 и 1 может занять 6 мест:

000000 
000001 
000010 
000011 
000100 
000101 
. 
. 
. 
111111 

Я уже знаком с itertools permutation and combination, но я не в состоянии генерировать последовательность, как это. Любая помощь будет оценена.

ответ

3

Вы можете использовать itertools.product

>>>from itertools import product 
>>>list(product([0,1],repeat=5)) 
+0

удивительным! Я искал что-то вроде этого. – python

+0

Другим способом я нашел! из 'itertools import product' ' для строки в продукте (диапазон (2), repeat = 5): ' ' print list (строка) ' – python

+2

Точно так же.' продукт' возвращает итератор. один путь для цикла или 'list (iterator)'. Тогда диапазон (2) означает '[0,1]' – itzMEonTV

1

менее элегантный, но вы можете использовать permutations, а также:

from itertools import permutations 
print sorted(list(set(list(permutations('0000011111', 5))))) 

ВЫВОД

[('0', '0', '0', '0', '0'), ('0', '0', '0', '0', '1'), ('0', '0', '0', '1', '0'), ('0', '0', '0', '1', '1'), ('0', '0', '1', '0', '0'), ('0', '0', '1', '0', '1'), ('0', '0', '1', '1', '0'), ('0', '0', '1', '1', '1'), ('0', '1', '0', '0', '0'), ('0', '1', '0', '0', '1'), ('0', '1', '0', '1', '0'), ('0', '1', '0', '1', '1'), ('0', '1', '1', '0', '0'), ('0', '1', '1', '0', '1'), ('0', '1', '1', '1', '0'), ('0', '1', '1', '1', '1'), ('1', '0', '0', '0', '0'), ('1', '0', '0', '0', '1'), ('1', '0', '0', '1', '0'), ('1', '0', '0', '1', '1'), ('1', '0', '1', '0', '0'), ('1', '0', '1', '0', '1'), ('1', '0', '1', '1', '0'), ('1', '0', '1', '1', '1'), ('1', '1', '0', '0', '0'), ('1', '1', '0', '0', '1'), ('1', '1', '0', '1', '0'), ('1', '1', '0', '1', '1'), ('1', '1', '1', '0', '0'), ('1', '1', '1', '0', '1'), ('1', '1', '1', '1', '0'), ('1', '1', '1', '1', '1')] 
Смежные вопросы