#!/bin/bash arr=($(<"$1")); function comb () { if (($1 < 1)) ; then echo $2 else for x in "${arr[@]}"; do echo "$(comb $(($1-1)) $x$2)" done fi } comb $3 > "$2"