Por lo que entiendo de su pregunta, parece que desea aplicar una permutación que especifique en un list. Esto se hace especificando otro list(llamémoslo p) que contiene los índices de los elementos del original listque deberían aparecer en el permutado list. Luego, usa ppara hacer un nuevo listsimplemente sustituyendo el elemento en cada posición por aquel cuyo índice está en esa posición en p.
def apply_permutation(lst, p):
return [lst[x] for x in p]
arr=list("abcde")
new_order=[3,2,0,1,4]
print apply_permutation(arr,new_order)
Esto imprime ['d', 'c', 'a', 'b', 'e'].
En realidad, esto crea un nuevo list, pero puede modificarse trivialmente para permutar el original "en su lugar".