Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 28, 2009 13:33:14

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Полный перебор списка слов

Что-то не могу найти функцию в стандартной билиотеки чтобы могла делать полный перебор списка слов. Помогите решить задачу.
Исходные данные:
list_words =
нужно чтобы на выходе были все возможные комбинации из этих слов но только брались из списка два слова т.е.
first-first, first-second, first-three, first-four, first-five, second-first, second-second, second-three..

Помогите написать такую функцию



Офлайн

#2 Окт. 28, 2009 13:52:25

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Полный перебор списка слов

Вот пример для python < 2.6:

def all_perms(str):
if len(str) <=1:
yield str
else:
for perm in all_perms(str[1:]):
for i in range(len(perm)+1):
yield perm[:i] + str[0:1] + perm[i:]
Для Python >= 2.6 в модуле itertools есть готовое решение
import itertools
itertools.permutations([1,2,3])



Отредактировано (Окт. 28, 2009 13:53:06)

Офлайн

#3 Окт. 28, 2009 15:51:28

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Полный перебор списка слов

>>> list(itertools.product(, ))



Офлайн

#4 Окт. 28, 2009 16:06:06

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Полный перебор списка слов

да, сорь, чуть не дочитал проблему =)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version