#!/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
IyEvYmluL2Jhc2gKCiMgZXhwbGljaXRseSBzZXQgJDEKc2V0IC0tIDEyMwoKYXJyYXk9KCkKcGVybXV0YXRpb24oKSB7CgogIGxvY2FsIGl0ZW1zPSIkMSIKICBsb2NhbCBvdXQ9IiQyIgogIGxvY2FsIGkKICBbWyAiJGl0ZW1zIiA9PSAiIiBdXSAmJiBhcnJheSs9KCAiJG91dCIgKSAmJiByZXR1cm4KICBmb3IgKCggaT0wOyBpPCR7I2l0ZW1zfTsgaSsrICkpIDsgZG8KICAgIHBlcm11dGF0aW9uICIke2l0ZW1zOjA6aX0ke2l0ZW1zOmkrMX0iICIkb3V0JHtpdGVtczppOjF9IgogIGRvbmUKICB9CgpwZXJtdXRhdGlvbiAkMQoKZm9yIGkgaW4gIiR7YXJyYXlbQF19IgpkbyAKICBlY2hvICIkaSIKZG9uZQo=