pub fn combinations<T>(iterable: &[T], r: usize) -> Vec<Vec<T>>where T: Clone,
combinations - generate combinations of length r