Исправить/доделать скрипт генерации сочетаний
Есть исходный код:
function BackTrace($srcarr, $cnt = 0, $arr = array(), $mask = array())
{
$length='10';
if ($cnt == $length) {
echo "'".implode('', $arr)."',". '
';
return; }
for ($i = 0; $i
if (!$mask[$i]) {
$mask[$i] = true;
$arr[$cnt] = $srcarr[$i];
BackTrace($srcarr, $cnt + 1, $arr, $mask);
$mask[$i] = false;
}
}
$srcarr = array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l');
BackTrace($srcarr);
Необходимо:
1) Исправить код, чтобы генерировались только комбинации вида: 010102323a, т.е. один символ должен повториться строго 3 раза(ни больше,ни меньше),второй,третий и четвертый символы по 2 раза(ни больше,ни меньше), остальные символы СТРОГО 1 раз. Строго генерация таких комбинаций (не принимается генерация всех возможных комбинаций из массива с условием выбора требуемых комбинаций из всего списка).
2) Избегать генерации вида: 000112233a,т.е. чтобы повторяющиеся символы не стояли рядом друг с другом.
3) Добавить переменные: Стартовая комбинация и Конечная комбинация. Пример:
$start = '010102323a';
$finish = '101023230a';
while ($string
{
...тело программы генерации...
}