pub fn exhaustive_strings_using_chars<I: Clone + Iterator<Item = char>>(
    cs: I
) -> StringsFromCharVecs<ExhaustiveVecs<char, PrimitiveIntIncreasingRange<u64>, I>>Notable traits for StringsFromCharVecs<I>impl<I: Iterator<Item = Vec<char>>> Iterator for StringsFromCharVecs<I> type Item = String;
Expand description

Generates all Strings with chars from a specified iterator.

If cs is empty, the output length is 1; otherwise, the output is infinite.

The lengths of the output Strings grow logarithmically.

Complexity per iteration

$T(i) = O(\log i)$

$M(i) = O(\log i)$

where $T$ is time and $M$ is additional memory.

Examples

extern crate itertools;

use itertools::Itertools;
use malachite_base::strings::exhaustive::exhaustive_strings_using_chars;

let ss = exhaustive_strings_using_chars('x'..='z')
    .take(20)
    .collect_vec();
assert_eq!(
    ss.iter().map(String::as_str).collect_vec().as_slice(),
    &[
        "", "x", "y", "xxx", "z", "xx", "xy", "xxxxx", "yx", "xxy", "yy", "xxxx", "xz", "xyx",
        "yz", "xxxxxx", "zx", "xyy", "zy", "xxxy"
    ]
);