Я ищу для создания комбинаций из списка элементов. Прямо сейчас я использую подход генерации набора мощности. Например, чтобы сгенерировать комбинации из {a,b,c}, я перечислю 001,010,100,101 и т. д. и возьму элемент, для которого соответствующий двоичный индекс установлен на 1. Но проблема возникает, когда в строке есть повторяющиеся символы. список Произнесите {a,a,b}. вышеприведенный подход даст a,a,b,ab,ba,aab. где, как я хотел бы видеть только a,b,ab,aa,aab.
Я думал написать какую-нибудь двоичную маску для устранения повторяющихся строк, но не смог. Любые мысли о том, как генерировать уникальные комбинации?