Python 中使用什么抽象数据类型 (ADT) 来实现 steinhaus-johnson-trotter(排列)算法?

What Abstract Data Type (ADT) is used to implement steinhaus-johnson-trotter (permutations) algorithm in Python?

什么抽象数据类型 (ADT) 用于实现 steinhaus-johnson-trotter algorithm 以生成 Python 中的对象排列?

我特别担心在数据的任何位置插入的复杂性成本:

1

12
21

123
132
312

来自llist模块的双向链表是个不错的选择?

序列中不需要插入新元素,每次只需要交换两个元素即可。这在阵列上很快。标准 Python 列表是作为数组实现的,请参阅 https://wiki.python.org/moin/TimeComplexity,因此我认为这是用于此目的的最佳数据结构。