可能性のあるすべての順列を配列にリストするスクリプトがあります。これは、確かに、単語リストの代わりに使用できます。これができれば、試行回数に制限を設けない限り、最終的にヒットしないということはあり得ない。
とにかく、スクリプトは明らかに膨大な量のメモリを消費し、サーバーに火をつけます。私が助けを必要としているのは、メモリ使用量を分散させる方法を見つけることです。たとえば、スクリプトを何らかの方法でリセットし、おそらくセッションを使用して、別のファイルまたは何かに移動して中断したところから続行するなどです。私は見当もつかない。
ここに私がこれまでに持っているものがあります:
<?php
ini_set('memory_limit', '-1');
ini_set('max_execution_time', '0');
$possible = "abcdefghi";
$input = "$possible";
function string_getpermutations($prefix, $characters, &$permutations)
{
if (count($characters) == 1)
$permutations[] = $prefix . array_pop($characters);
else
{
for ($i = 0; $i < count($characters); $i++)
{
$tmp = $characters;
unset($tmp[$i]);
string_getpermutations($prefix . $characters[$i], array_values($tmp), $permutations);
}
}
}
$characters = array();
for ($i = 0; $i < strlen($input); $i++)
$characters[] = $input[$i];
$permutations = array();
print_r($characters);
string_getpermutations("", $characters, $permutations);
print_r($permutations);
?>
何か案は?:3