c语言排列组合算法