fork(4) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void recurse(
  7. const string &s, unsigned mask = 0, const string &out = string())
  8. {
  9. size_t n = s.size();
  10. if (out.size() == n) cout << ' ' << out;
  11. for (size_t i = 0; i < n; ++i) {
  12. unsigned bit = 1 << i;
  13. if (mask & bit) continue;
  14. recurse(s, mask | bit, out + s[i]);
  15. }
  16. }
  17.  
  18. int main() {
  19. string test = "red";
  20. recurse(test);
  21. cout << endl;
  22. return 0;
  23. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
 red rde erd edr dre der