Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::collections::VecDeque;
- fn permute<T: Clone>(used: &mut Vec<T>, unused: &mut VecDeque<T>, perms: &mut Vec<T>) {
- if unused.is_empty() {
- perms.extend(used.iter().cloned());
- }
- for _ in 0..unused.len() {
- used.push(unused.pop_front().unwrap());
- permute(used, unused, perms);
- unused.push_back(used.pop().unwrap());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement