Тоже писал когда-то подобное. Еще На фортране.
Здесь, думаю, построение индуктивно. Зная все комбинации для n, можно построить все комбинации для (n+1)