重写了permutation