Краткий пример в Python:
def comb(sofar, rest, n):
if n == 0:
print sofar
else:
for i in range(len(rest)):
comb(sofar + rest[i], rest[i+1:], n-1)
>>> comb("", "abcde", 3)
abc
abd
abe
acd
ace
ade
bcd
bce
bde
cde
Для объяснения рекурсивный метод описан в следующем примере:
Пример: ABCDE Все комбинации из 3 будут: