Как сгенерировать перестановку строки, но без повторов и разной длины? - PullRequest
0 голосов
/ 25 февраля 2019

Я ищу алгоритм php или просто псевдокод, чтобы получить все перестановки строки, но без повторения символов и длина сгенерированной строки может варьироваться от 1 до максимальной длины ввода.Пример:

ввод: 1 2 3

возможные комбинации:

1

1 2 / (то же самое, что 2 1, поэтому необходимоне рассчитывается)

1 3

1 2 3

2

2 3

3

1 Ответ

0 голосов
/ 25 февраля 2019

Вот, пожалуйста,

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;

}

Из PHP Cookbook

...