心血来潮想到这个东西,感觉不是很难,就着手实现了一下
但发现不是那么简单(不是计算机系真的心累

def all(s,ss=None):
    ss = [s]
    if len(s) == 2:
        ss.append(s[::-1])
        return ss
    else:
        for i in range((len(s)-1), -1, -1):
            item = s[i]
            temp = list(map(lambda x:x+[item], all(s[:i] + s[i+1:])))
            ss.extend(temp)
        return ss[1:]

s = [1, 2, 3, 4]
ss = all(s)
print(ss)