fork download
  1. #!/bin/bash
  2.  
  3. # explicitly set $1
  4. set -- 123
  5.  
  6. array=()
  7. permutation() {
  8.  
  9. local items="$1"
  10. local out="$2"
  11. local i
  12. [[ "$items" == "" ]] && array+=( "$out" ) && return
  13. for (( i=0; i<${#items}; i++ )) ; do
  14. permutation "${items:0:i}${items:i+1}" "$out${items:i:1}"
  15. done
  16. }
  17.  
  18. permutation $1
  19.  
  20. for i in "${array[@]}"
  21. do
  22. echo "$i"
  23. done
  24.  
Success #stdin #stdout 0s 19664KB
stdin
Standard input is empty
stdout
123
132
213
231
312
321