Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 仅生成最大长度为X,最小长度为X的字符串_Php_Memory_Max_Permutation - Fatal编程技术网

Php 仅生成最大长度为X,最小长度为X的字符串

Php 仅生成最大长度为X,最小长度为X的字符串,php,memory,max,permutation,Php,Memory,Max,Permutation,我有一个脚本,可以生成所有可能的排列。问题是,我不知道如何让它只列出最多10个字符和最少3个字符 <?php ini_set('memory_limit', '-1'); ini_set('max_execution_time', '0'); $possible = "abcdefghi"; $input = "$possible"; function string_getpermutations($prefix, $characters, &$permutations)

我有一个脚本,可以生成所有可能的排列。问题是,我不知道如何让它只列出最多10个字符和最少3个字符

<?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);

?>

目前输出大约400000种可能性,这只是我想要的一小部分。 (我真的希望它能做到所有可能,这将是内存使用的一个巨大问题,但这是另一个问题。)


有人知道怎么做吗?

你想创造什么?检查每一个可能的密码?是的,普特万德,不确定这是不是一个好主意,但这就是我要做的。