diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollStreamUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollStreamUtil.java
index 188d83225..06978d628 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollStreamUtil.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/collection/CollStreamUtil.java
@@ -29,6 +29,7 @@ import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collector;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* 集合的stream操作封装
@@ -396,4 +397,25 @@ public class CollStreamUtil {
}
return map;
}
+
+ /**
+ * 笛卡尔积
+ * 参考:https://www.baeldung-cn.com/java-cartesian-product-sets
+ *
+ * @param sets 集合列表
+ * @param index 索引
+ * @return 笛卡尔积
+ */
+ public static Stream> cartesianProduct(final List> sets, final int index) {
+ if (index == sets.size()) {
+ return Stream.of(ListUtil.zero());
+ }
+ final List