<?php
function generateVariation($A, $i = 0){
$variations = generateVariation($A, $i + 1);
for ($j = 0; $j < count($A[$i]); $j++){ if ($variations){
foreach ($variations as $variation){
}
}else{
$result[] = array($A[$i][$j]); }
}
return $result;
}
}
);
print_r(generateVariation
($A, $i = 0));
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7Cm1iX2ludGVybmFsX2VuY29kaW5nKCd1dGYtOCcpOwoKCgpmdW5jdGlvbiBnZW5lcmF0ZVZhcmlhdGlvbigkQSwgJGkgPSAwKXsKCQogICAgJHJlc3VsdCA9IGFycmF5KCk7CgkKICAgIGlmICgkaSA8IGNvdW50KCRBKSl7CiAgICAgICAgJHZhcmlhdGlvbnMgPSBnZW5lcmF0ZVZhcmlhdGlvbigkQSwgJGkgKyAxKTsKCiAgICAgICAgZm9yICgkaiA9IDA7ICRqIDwgY291bnQoJEFbJGldKTsgJGorKyl7CiAgICAgICAgICAgIGlmICgkdmFyaWF0aW9ucyl7CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkdmFyaWF0aW9ucyBhcyAkdmFyaWF0aW9uKXsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0W10gPSBhcnJheV9tZXJnZShhcnJheSgkQVskaV1bJGpdKSwgJHZhcmlhdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfWVsc2V7CgkJCQkkcmVzdWx0W10gPSBhcnJheSgkQVskaV1bJGpdKTsKCQkJfQoJCX0KCQlyZXR1cm4gJHJlc3VsdDsKCX0KfQoJCiRBID0gYXJyYXkoCiAgICAwID0+IGFycmF5KDEpLAogICAgMSA9PiBhcnJheSgxLDIsMyksCiAgICAyID0+IGFycmF5KDQsNSw2KQogICk7CgpwcmludF9yKGdlbmVyYXRlVmFyaWF0aW9uKCRBLCAkaSA9IDApKTs=