# Permutation function which allows for repetitions

I want to permute a matrix based on some permutation cycle which is not known beforehand. A function searches through the matrix and returns the pair of indices $$i,j$$ of the first entry which equals some specific value. Now, I want to permute the matrix such that that column $$j$$ appears first in the matrix. I would use the function Cycles[{{1,j}}], but it doesn't work if the index $$j$$ equals 1 (since I want to bring it to the first column).

Is there a way to create a general permutation function such that in the situation that $$j=1$$, it just returns the identity permutation (so it doesn't permute the matrix)?

You want to exchange column 1 with column j of a matrix. You can use Part to achieves this. Here is an example:
mat = Array[Subscript[a,  #1, #2] &, {3, 3}]

• Most importantly to the OP is that this works also for j=1. – Henrik Schumacher Mar 30 at 10:59