Нужен алгоритм перестановки слов местами
На C++ — разбить предложение на слова, загнать их в vector и использовать next_permutation.
Если нужно получить просто все перестановки, то:
1) Создаем массив слов из исходного предложения
2) Выбираем алгоритм для перестановки (пример), на каждом шаге выводим результат.