如何生成字符串排列,但没有重复且长度不同?

时间:2019-02-25 14:40:53

标签: php combinations permutation

我正在寻找一种php算法或只是伪代码来获取一个字符串的所有排列,但是不重复字符,并且生成的字符串的长度可以在1到输入的最大长度之间变化。示例:

输入:1 2 3

可能的组合:

1

1 2 /(与2 1相同,因此不能计算)

1 3

1 2 3

2

2 3

3

1 个答案:

答案 0 :(得分:0)

您在这里:

function pc_array_power_set($array) {
    // initialize by adding the empty set
    $results = array(array());

    foreach ($array as $element)
        foreach ($results as $combination)
            array_push($results, array_merge(array($element), $combination));

   return $results;

}

From PHP Cookbook