我正在尝试打印给定列表的所有可能结果,并且我想知道如何在列表的各个位置添加值。例如,如果我的名单是[A, B],我要插入X到列表中的所有可能的索引,使得它会返回此[X, A, B],[A, X, B],[A, B, X]。
[A, B]
X
[X, A, B]
[A, X, B]
[A, B, X]
我在考虑使用range(len())for循环,但不确定如何启动。
range(len())
您可以通过以下列表理解来做到这一点:
[mylist[i:] + [newelement] + mylist[:i] for i in xrange(len(mylist),-1,-1)]
以您的示例为例:
>>> mylist=['A','B'] >>> newelement='X' >>> [mylist[i:] + [newelement] + mylist[:i] for i in xrange(len(mylist),-1,-1)] [['X', 'A', 'B'], ['B', 'X', 'A'], ['A', 'B', 'X']]