#!/bin/bash

# explicitly set $1
set -- 123

array=()
permutation() {

  local items="$1"
  local out="$2"
  local i
  [[ "$items" == "" ]] && array+=( "$out" ) && return
  for (( i=0; i<${#items}; i++ )) ; do
    permutation "${items:0:i}${items:i+1}" "$out${items:i:1}"
  done
  }

permutation $1

for i in "${array[@]}"
do 
  echo "$i"
done
