Нашел на сайте такую функцию:
function gen($chars, $length, &$words, $prefix = '') {
if (strlen($prefix) == $length) {
$words[] = $prefix;
return;
}
for ($i = 0; $i < strlen($chars); $i++) {
gen($chars, $length, $words, $prefix.$chars{$i});
}
return;
}
$chars = '_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789';
gen($chars,5,$words,);
foreach ($words as $word) {
// My Code ...
}
При вызове функции и передаче длины более 5 выскакивает ошибка о том, что скрипту не хватает 5гб памяти. Как оптимизировать эту функцию, что бы расходовалось минимум памяти, а комбинации были длиннее. Сразу скажу, я не в массив собираю. Мне нужно из генератора получить очередную комбинацию, и проверить ее по своим условиям. А значит предыдущие комбинации хранить не нужно.