@ ΤΖΩΤΖΙΟΥ: правда. Я просто хотел показать, как это работает под капотом. Но вы правы: если есть библиотека, которая будет делать то, что вы хотите, то повторное изобретение колеса - это редко ответ.
ался сгенерировать список всех возможных 4-х символьной строки, которая может быть составлена из любого заданного набора символов. Я использовал функцию для генерации каждой 4-символьной комбинации из набора символов, но каждый символ используется только один раз. Мне нужны все возможные комбинации, использующие данный набор символов, например:
String[] elements = {"a", "b", "c", "1", "2", "3"};
int[] indices;
CombinationGenerator x = new CombinationGenerator (elements.length, 4);
StringBuffer combination;
while (x.hasMore ()) {
combination = new StringBuffer ();
indices = x.getNext ();
for (int i = 0; i < indices.length; i++) {
combination.append (elements[indices[i]]);
}
System.out.println (combination.toString ());
}
Использование класса CombinationGenerator изВот, это возвратит каждую уникальную комбинацию из 4 символов, такую как:
'abcd' , 'abc1', 'acb2', 'acb1'
Но я хочу каждую возможную строку, которая может быть создана с использованием заданных символов. Например:
'aaaa', 'aaab', 'abc1', 'aac1', '11c2'
Я перепробовал все рекурсивные и перестановочные методы, которые мне удалось найти или придумать, но я нахожусь в тупике от того, чтобы получить что-то большее, чем генерация всех комбинаций, как указано выше, затем генерация каждой перестановки каждой комбинации, но я не могу работать Как создать набор комбинаций, используя повторяющиеся символы.
Любая помощь или даже теория о том, как это можно сделать, была бы полезной.