<?php
$array1 = array('A', 'B');
$array2 = array('1', '2', '3');
$num = count($array2);
$comb = array();
//The total number of possible combinations
$total = pow(2, $num);
//Loop through each possible combination
for ($i = 0; $i < $total; $i++)
{
$flag = '';
//For each combination check if each bit is set
for ($j = 0; $j < $num; $j++)
{
//Is bit $j set in $i?
if (pow(2, $j) & $i) $flag = $flag.''.$array2[$j];
}
if(!empty($flag))
$comb[] = $flag;
}
$result = array();
foreach($array1 as $val)
{
foreach($comb as $co)
{
$result[] = $val."".$co;
}
}
print_r($result);