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

Generates all Strings.

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;

let ss = exhaustive_strings().take(20).collect_vec();
assert_eq!(
    ss.iter().map(String::as_str).collect_vec().as_slice(),
    &[
        "", "a", "b", "aaa", "c", "aa", "d", "aaaa", "e", "ab", "f", "aab", "g", "ba", "h",
        "aaaaa", "i", "bb", "j", "aba"
    ]
);