1.递归
理解起来比较困难,网上大部分是这种实现
参考:
https://blog.csdn.net/weimingjue/article/details/101013282
2.lambda表达式
简单,清晰
参考:https://www.91mszl.com/zhangwuji/article/details/1282
3.guava组件
使用方法:
List<List<String>> cartesianProductList = Lists.cartesianProduct(Lists.newArrayList("A", "B", "C"), Lists.newArrayList("a1", "b1", "c1"));