<?php

function PermutationsRep ($alphabet, $return, $result=[], $pos=0) {
 if ($pos == count ($alphabet))
   $return($result);
 else
 foreach ($alphabet as $char) {
   $result[$pos]=$char;
   PermutationsRep ($alphabet, $return, $result, $pos+1);
 }
}

PermutationsRep (['a','b','c'], function ($p){
  echo implode('',$p), PHP_EOL;
});
