fork(5) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // generate permutation of {a[st], a[st+1], ..., a[ed]}
  5. void P(char a[], int st, int ed) {
  6. if (st > ed) { puts(a); return; } // nothing to generate
  7. for (int i=st; i<=ed; ++i) {
  8. swap(a[st], a[i]); // enumerate first element
  9. P(a, st+1, ed);
  10. swap(a[st], a[i]); // recover
  11. }
  12. }
  13.  
  14. int main() {
  15. char s[] = "abcde";
  16. P(s, 0, (int)strlen(s)-1);
  17. return 0;
  18. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
abcde
abced
abdce
abdec
abedc
abecd
acbde
acbed
acdbe
acdeb
acedb
acebd
adcbe
adceb
adbce
adbec
adebc
adecb
aecdb
aecbd
aedcb
aedbc
aebdc
aebcd
bacde
baced
badce
badec
baedc
baecd
bcade
bcaed
bcdae
bcdea
bceda
bcead
bdcae
bdcea
bdace
bdaec
bdeac
bdeca
becda
becad
bedca
bedac
beadc
beacd
cbade
cbaed
cbdae
cbdea
cbeda
cbead
cabde
cabed
cadbe
cadeb
caedb
caebd
cdabe
cdaeb
cdbae
cdbea
cdeba
cdeab
ceadb
ceabd
cedab
cedba
cebda
cebad
dbcae
dbcea
dbace
dbaec
dbeac
dbeca
dcbae
dcbea
dcabe
dcaeb
dceab
dceba
dacbe
daceb
dabce
dabec
daebc
daecb
decab
decba
deacb
deabc
debac
debca
ebcda
ebcad
ebdca
ebdac
ebadc
ebacd
ecbda
ecbad
ecdba
ecdab
ecadb
ecabd
edcba
edcab
edbca
edbac
edabc
edacb
eacdb
eacbd
eadcb
eadbc
eabdc
eabcd