2016-01-28 2 views
0

Я получил список,Генерирующие комбинации в списке, но только в порядке возрастания

a=['z','g','b','h'] 

Теперь, когда я,

for p in itertools.permutations(a,2):print p 

я,

('z', 'g') 
('z', 'b') 
('z', 'h') 
('g', 'z') 
('g', 'b') 
('g', 'h') 
('b', 'z') 
('b', 'g') 
('b', 'h') 
('h', 'z') 
('h', 'g') 
('h', 'b') 

Мне нужно только эти комбинации,

('z', 'g') 
('z', 'b') 
('z', 'h') 
('g', 'b') 
('g', 'h') 
('b', 'h') 

И не нужно следующее. Которые находятся в обратном порядке,

('g', 'z') 
('b', 'z') 
('b', 'g') 
('h', 'z') 
('h', 'g') 
('h', 'b') 

Может кто-нибудь помочь? Благодаря

ответ

0

Late но нашел это сам :-)

Просто используйте комбинации вместо перестановок.

for p in itertools.combinations(a,2):print p 


Out[1]: 
('z', 'g') 
('z', 'b') 
('z', 'h') 
('g', 'b') 
('g', 'h') 
('b', 'h') 
Смежные вопросы