How to generate all possible permutations of a string in C++

1 Answer

0 votes
#include <iostream>
 
void print_permutations(std::string s, int i, int len) {
   if (i == len) {
       std::cout << s << "\n";
   }
   else {
        for (int j = i; j <= len; j++) {
            std::swap(s[i], s[j]);
            print_permutations(s, i + 1, len);
            std::swap(s[i], s[j]);
       }
   }
} 
 
int main(void) {
   std::string s = "abcd";
   
   print_permutations(s, 0, s.size() - 1);
}
 
 
 
/*
 
abcd
abdc
acbd
acdb
adcb
adbc
bacd
badc
bcad
bcda
bdca
bdac
cbad
cbda
cabd
cadb
cdab
cdba
dbca
dbac
dcba
dcab
dacb
dabc
 
*/

 



answered Feb 16, 2021 by avibootz
edited Jan 5, 2025 by avibootz
...