pub fn combinations<T>(list: &[Vec<T>]) -> Vec<Vec<T>>where
T: Clone,
Expand description
Takes a list where each element is a set of choices, and returns all the possible sets generated. Will clone the elements.
let v = vec![
vec![1],
vec![2, 3],
vec![4],
vec![5, 6, 7],
];
assert_eq!(treebender::utils::combinations(&v), vec![
vec![1, 2, 4, 5],
vec![1, 3, 4, 5],
vec![1, 2, 4, 6],
vec![1, 3, 4, 6],
vec![1, 2, 4, 7],
vec![1, 3, 4, 7],
]);