Создание комбинаций, которые не имеют больше одного пересекающегося элемента

Я ищу создание особого типа комбинации, в которой нет двух наборов, имеющих более одного пересекающегося элемента. Позвольте мне объяснить на примере:

Допустим, у нас есть набор из 9 букв, который содержит A, B, C, D, E, F, G, H и I

Если вы создадите стандартные неповторяющиеся комбинации из трех букв, у вас будет наборы 9C3. Они будут содержать наборы, такие как ABC, ABD, BCD и т. Д. Я ищу для создания наборов, которые имеют не более 1 общей буквы. Итак, в этом примере мы получим следующие наборы:

ABC, ADG, AEI, AFH, BEH, BFG, BDI, CFI, CDH, CEG, DEF и GHI - обратите внимание, что если вы берете любые два набора, то не более 1 повторяющейся буквы.

Что было бы хорошим способом генерировать такие наборы? Это должно быть масштабируемое решение, чтобы я мог сделать это для набора из 1000 букв с размером поднабора 4.

Любая помощь высоко ценится.

Спасибо

Ответы на вопрос(5)

Ваш ответ на вопрос