rrylee
3/31/2016 - 3:17 AM

Get all permutations.

Get all permutations.

#!/usr/bin/env python

def perm(lst):
    """Just for list"""
    if len(lst) == 0:
        return []
    elif len(lst) == 1:
        return lst
    else:
        l = []
        for i in range(len(lst)):
            x = lst[i]
            xs = lst[:i] + lst[i + 1:]
            for p in perm(xs):
                if isinstance(p, int):
                    l.append([x] + [p])
                else:
                    l.append([x] + p)
        return l
<?php

function permutations(array $array) {
    if (count($array) == 0) {
        return [];
    } elseif (count($array) == 1) {
        return $array;
    } else {
        $results = [];
        for ($i = 0; $i < count($array); $i ++) {
            $x = $array[$i];
            $xs = array_merge(array_slice($array, 0, $i), array_slice($array, $i + 1));

            foreach (permutations($xs) as $p) {
                if (is_array($p)) {
                    $results[] = array_merge([$x], $p);
                } else {
                    $results[] = array_merge([$x], [$p]);
                }
            }
        }
        return $results;
    }
}