=sizeof($input_arr)-1){ return $input_arr[$index]; }else{ $low_b=combination($input_arr,$index+1); $b=array(); foreach($input_arr[$index] as $ch) foreach($low_b as $low_arr) $b[]=array_merge(array($ch),is_array($low_arr)? $low_arr: array($low_arr)); return $b; } }