Я получил ошибку, которую делал.Я очень не хочу отвечать на свои вопросы, но это может помочь кому-то, как я, в будущем.
Я изменился -
vector<string> permutated_strings;
на
static vector<string> permutated_strings;
в перестановкефункция так, чтобы предыдущие возвращения от рекурсивных вызовов не были потеряны.Тем самым я получаю желаемый результат.
Спасибо всем, что указали мне на ошибку, которую я совершал.
РЕДАКТИРОВАТЬ
Как предполагает @MM, это решение может вызвать проблемы в будущем.И я понял, что если я задаю значение «test» как 2, окончательное значение в permutated_strings будет от test = 1 + test = 2, а это не то, что я хотел.Так что это решение не идеальное.Вместо этого я принимаю решение от @ BartekPL.