<?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){
});
PD9waHAKCmZ1bmN0aW9uIFBlcm11dGF0aW9uc1JlcCAoJGFscGhhYmV0LCAkcmV0dXJuLCAkcmVzdWx0PVtdLCAkcG9zPTApIHsKIGlmICgkcG9zID09IGNvdW50ICgkYWxwaGFiZXQpKQogICAkcmV0dXJuKCRyZXN1bHQpOwogZWxzZQogZm9yZWFjaCAoJGFscGhhYmV0IGFzICRjaGFyKSB7CiAgICRyZXN1bHRbJHBvc109JGNoYXI7CiAgIFBlcm11dGF0aW9uc1JlcCAoJGFscGhhYmV0LCAkcmV0dXJuLCAkcmVzdWx0LCAkcG9zKzEpOwogfQp9CgpQZXJtdXRhdGlvbnNSZXAgKFsnYScsJ2InLCdjJ10sIGZ1bmN0aW9uICgkcCl7CiAgZWNobyBpbXBsb2RlKCcnLCRwKSwgUEhQX0VPTDsKfSk7Cg==