Есть много способов сделать это. Я думаю, что лучше всего разбить это на два этапа:
- Разбейте строку на составные части.
- Генерация всех перестановок этих частей.
Вы можете разбить строку на отдельные значения, используя метод String.split
:
String[] allParts = inputString.split(' ');
Получив это, вы можете генерировать все перестановки с помощью одной из многих функций генерации перестановок. Ссылка Леона, вероятно, поможет здесь.