@ ΤΖΩΤΖΙΟΥ: правда. Я просто хотел показать, как это работает под капотом. Но вы правы: если есть библиотека, которая будет делать то, что вы хотите, то повторное изобретение колеса - это редко ответ.

ался сгенерировать список всех возможных 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'

Я перепробовал все рекурсивные и перестановочные методы, которые мне удалось найти или придумать, но я нахожусь в тупике от того, чтобы получить что-то большее, чем генерация всех комбинаций, как указано выше, затем генерация каждой перестановки каждой комбинации, но я не могу работать Как создать набор комбинаций, используя повторяющиеся символы.

Любая помощь или даже теория о том, как это можно сделать, была бы полезной.

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

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