高分求助,有没有部分全排列的算法
最近碰到一个问题,如下:给定n个元素,这n个元素分为了m组,每组元素个数不等,
基本上形如a=((a1,a2,..ai),(b1,b2,..bi),..(x1,x2,..xi))的形式,各个分组的顺序是确定了的,现在需要求出在分组顺序确定情况下的a的所有排列,也就是将组内作全排列,然后做笛卡尔积,最后将这n个元素的字符串排列返回。
该问题较为直观的想法是使用现有的全排列算法对各个分组分别排列,然后再组装成最后的结果,但是发现可能效率和空间复杂度会有问题,有没有比较成型的简单算法,也就是不返回各个分组的全排列,而是直接返回最终的排列?本人不是数学出身,也不知道这是否是个典型问题。