#include <algorithm> #include <iostream> using namespace std; string s; int n; int vis[10]; char list[10]; void dfs(int x) { if(x == n) { for(int i = 0; i < n; i++) cout << list[i]; cout << endl; return; } for (int i = 0; i < n; i++) { if(!vis[i]) { list[x] = s[i]; vis[i] = 1; dfs(x + 1); vis[i] = 0; } } } int main() { cin >> s; n = s.length(); // 方法一:STL // do{ // cout << s << endl; // }while(next_permutation(s.begin(), s.end())); // 方法二:递归 dfs(0); }