使用next_permutation()就非常简单了。

#include <iostream>
#include <algorithm>
using namespace std;

//习题8.2 全排列
int main(){
    string s;
    cin>>s;
    sort(s.begin(),s.end());
    cout<<s<<endl;
    while(next_permutation(s.begin(),s.end()))cout<<s<<endl;
    return 0;
}