求一个复杂的算法(关于值班的)
现有两种资源A,B存在数据库中两张表 
 A有若干个,B的个数等于A 
 A和B是多对多的关系:并存在另一张表中 
 并且可以保证每个A都有B对应,每个B都有A对应   
 现在求一算法可以得到每个A和每个B一一对应的所有方案或者一个 
 例如: 
 A1对应B1、B2 
 A2对应B1、B3 
 A3对应B2、B4 
 A4对应B2、B3、B4   
 可以得到一个方案(A1、B1)(A2、B3)(A3、B3)(A4、B4) 
 或则所有的方案(A1、B2)(A2、B1)(A3、B4)(A4、B3);…………………………     
 请高手帮忙啊,小生不胜感激 
------解决方案--------------------up
------解决方案--------------------就是彩票中的排列4的组选方案。 
------解决方案--------------------可以考虑不用这种算法实现,太复杂了