2015-01-05 15 views
-1

Как найти комбинации (вероятность) для a, b, c, d, e с использованием python/algorithm?Как найти комбинации (вероятность) для a, b, c, d, e

Учитывая, что длина строки равна 5, что составляет минимум 1 & максимум 5. Все символы могут быть один раз.

Пример:

a 
b 
c 
d 
e 
ab 
ac 
abcde 
acde 
etc.. 
+2

Посмотрите на модуль [itertools] (https://docs.python.org/2/library/itertools.html). Тогда возвращайся, если у тебя все еще есть вопросы :) – fredtantini

+0

Я не вижу, какую «вероятность» вы имеете в виду, вы, вероятно, хотите все перестановки всех возможных длин. – MightyPork

+0

Хорошо Спасибо :) i will – senthilnathang

ответ

4
import itertools 

mystring = 'abcde' 
for i in range(1,len(mystring)+1): 
    for combo in itertools.combinations(mystring, i): 
     print(''.join(combo)) 

Выход:

a 
b 
c 
d 
e 
ab 
ac 
ad 
ae 
bc 
bd 
be 
cd 
ce 
de 
abc 
abd 
abe 
acd 
ace 
ade 
bcd 
bce 
bde 
cde 
abcd 
abce 
abde 
acde 
bcde 
abcde 
1

Если вы хотите перестановкам (как указано в комментариях), попробуйте использовать itertools.permutations:

>>> for length in range(1, 6): 
...  for permutation in itertools.permutations('abcde', r=length): 
...   print permutation 

Выход:

() 
('a',) 
('b',) 
('c',) 
('d',) 
('e',) 
('a', 'b') 
('a', 'c') 
('a', 'd') 
('a', 'e') 
('b', 'a') 
('b', 'c') 
('b', 'd') 
... 
Смежные вопросы