pyOut
Окт. 28, 2009 13:33:14
Что-то не могу найти функцию в стандартной билиотеки чтобы могла делать полный перебор списка слов. Помогите решить задачу.
Исходные данные:
list_words =
нужно чтобы на выходе были все возможные комбинации из этих слов но только брались из списка два слова т.е.
first-first, first-second, first-three, first-four, first-five, second-first, second-second, second-three..
Помогите написать такую функцию
regall
Окт. 28, 2009 13:52:25
Вот пример для 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])
Dimka665
Окт. 28, 2009 15:51:28
>>> list(itertools.product(, ))
regall
Окт. 28, 2009 16:06:06
да, сорь, чуть не дочитал проблему =)