Я хочу убедиться, что я понимаю, что вы пытаетесь сделать в первую очередь. Кажется, ваша проблема:
- Учитывая список строк,
- Вернуть каждую возможную комбинацию из n элементов из списка,
- где n = 2 к длине списка
Например, в списке из 5 строк вам понадобятся все комбинации из 2 строк, из 3 строк, из 4 строк и из 5 строк.
Если это точное изложение вашей проблемы, следует указать на одну явную проблему. Количество предметов, которые вы будете генерировать, составляет порядка 2 ^ (длина списка). Это означает, что попытка сгенерировать все комбинации из 300 предметов никогда не будет быстрой, несмотря ни на что. Кроме того, для любого, кроме самых маленьких списков, вам нужно будет генерировать элементы лениво, или у вас не хватит памяти.
Если вам не нужны все комбинации всех длин, вы можете уточнить свой вопрос, чтобы лучше сформулировать желаемую цель.