3v4l.org

run code in 300+ PHP versions simultaneously
<?php $set1 = ['A', 'B', 'C']; $set2 = [1, 2, 3]; function perms( $set1, $set2) { $perms = array(); $i = count( $set1); while( $i > 0) { $perms[] = p( $set1, $set2); $set1[] = array_shift( $set1); $i--; } return $perms; } function p( $set1, $set2) { $p = array(); for( $i = 0; $i < count( $set1); $i++) { $el1 = $set1[ $i ]; $el2 = $set2[ $i ]; $p[] = $el1.$el2; } return implode( ', ', $p); } print_r( perms( $set1, $set2));

preferences:
33.6 ms | 402 KiB | 5 Q