всех возможных в нем соединений? то есть
make(vec![1,2,3]) == vec![[], [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]]
https://docs.rs/itertools/0.9.0/itertools/trait.Itertools.html#method.multi_cartesian_product ?
нет, оно строит N! перестановок всех элементов, а мне нужно множество пар.
https://docs.rs/itertools/0.9.0/itertools/trait.Itertools.html#method.permutations
Нет, это почти то что надо. iter.map(|x| [None, Some(x)].iter().cloned()).multi_cartesian_product().map(|it| it.flatten()) это то что надо вроде: итератор по всем возможным подпоследовательностям
или просто (0..set.len()).flat_map(|i| set.iter().permutatuions(i))
Обсуждают сегодня