Конкретная комбинация группы элементов может быть представлена в виде двоичного числа, где бит n
номера представляет, включает ли комбинация элемент # n
группы.
Код просто перебирает достаточное количество двоичных чисел для представления всего набора n
элементов (от 0 до (1<<n) - 1
, что совпадает с 2 ^ n-1), и добавляет каждый, имеющий точно c
1-бит в нем (то есть элементы, которые будут представлены этими битами в заданном комбо) к списку.