Я искал алгоритм k-комбинации Python и нашел здесь эту маленькую красоту https://stackoverflow.com/a/2837693/553383< /а>
Есть идеи о его T(n) и/или временной сложности?
Вот код, который вы найдете по ссылке выше:
def choose_iter(elements, length):
for i in xrange(len(elements)):
if length == 1:
yield (elements[i],)
else:
for next in choose_iter(elements[i+1:len(elements)], length-1):
yield (elements[i],) + next
def choose(l, k):
return list(choose_iter(l, k))