Нахождение перестановок и комбинаций с использованием Python - PullRequest
2 голосов
/ 14 октября 2010

У меня есть 2 переменные - а и б.Мне нужно заполнить k мест, используя эти переменные.Поэтому, если k = 3, вывод должен быть

[a,a,a], [a,a,b] , [a,b,a], [b,a,a], [a,b,b], [b,a,b], [b,b,a] and [b,b,b] 

Вход - k

Выход - Все комбинации

Как мне это кодировать в Python?Может ли здесь помочь itertools?

Ответы [ 2 ]

6 голосов
/ 14 октября 2010
>>> import itertools
>>> list(itertools.product('ab', repeat=3))
[('a', 'a', 'a'), ('a', 'a', 'b'), ('a', 'b', 'a'), ('a', 'b', 'b'), ('b', 'a', 'a'), ('b', 'a', 'b'), ('b', 'b', 'a'), ('b', 'b', 'b')]
1 голос
/ 14 октября 2010
def genPerm(varslist, pos,resultLen, result, resultsList)
   if pos>resultLen:
       return;
   for e in varslist:
       if pos==resultLen:
           resultsList.append(result + [e]);
       else
           genPerm(varsList, pos+1, resultLen, result + [e], resultsList);

Позвонить по номеру:

genPerm([a,b], 0, resLength, [], resultsList);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...