permute swap