<p><b>Abstract</b>—In this paper, we present an algorithm for performing permutations of messages on multistage interconnection networks. Permutations of messages are needed in many parallel algorithms. The proposed algorithm is feasible for any networks that can connect each input to each output using a set of <tmath>$N$</tmath> nonblocking connections, where <tmath>$N$</tmath> is the number of ports on the network. Messages are segmented into <tmath>$N$</tmath> submessages that are sent independently in each time step. For any permutation, the settings of switches are changed with fixed patterns. Partitioning of the network into independent subnetworks is also supported, each capable of simultaneously routing a different permutation.</p>