Solution

 avatar
unknown
python
2 years ago
607 B
3
Indexable
import functools

class Solution:
    def innerMap(self, b, x):
        x.append(b)
        return x
    def accumFunc(self, b, xs):
        ds = xs.copy()
        ds.remove(b)
        val = self.permute(ds)
        g = list(map(lambda x: self.innerMap(b, x), val))
        return g
    def permute(self, a: List[int]) -> List[List[int]]:
        if len(a) == 0:
            return []
        if len(a) == 1:
            return [a]
        if len(a) == 2: 
            return [[a[0], a[1]], [a[1], a[0]]]
        h = functools.reduce(lambda accum, x: self.accumFunc(x, a) + accum , a, [])
        return h 
Editor is loading...