Python:如何从列表中获取元素的所有组合,包括所有不同的顺序并以2种不同的方式编写它

我已经发现很多次要获取给定列表的所有可能组合的问题,但还没有找到如何获得所有可能的订单的问题。

另外,我也在寻找另一种输出组合的方法。

让我们来看一个例子。

假设我有以下元素列表。

['A', 'B', 'C']

我想生成一个匹配这两种表达方式的字典。

第一个是通过可变长度的列表来表达不同的组合和不同的顺序:

[]
['A']
['A','B']
['B','A']
...
['A','B','C']
['A','C','B']
['C','A','B']
...

第二个使用固定大小的列表,其中正整数以相反的顺序指示该元素的位置(第一个元素从0开始,然后第二个元素为1,第三个元素为2,依此类推...),并替换为'void '元素('')为-1。 这给出:

#     Initial list: [ 'A', 'B', 'C'] 
                       |    |    |
                       v    v    v
[]             ->   [ -1 , -1 , -1 ] 
['A']          ->   [  0 , -1 , -1 ]
['A','B']      ->   [  0 ,  1 , -1 ]
['B','A']      ->   [  1 ,  0 , -1 ]
...
['A','B','C']  ->   [  0 ,  1 ,  2 ]
['A','C','B']  ->   [  0 ,  2 ,  1 ]
['C','A','B']  ->   [  1 ,  2 ,  0 ]
...

非常感谢您的任何想法! 最好的