
All Permutations

Given a string, return all possible permutations of its characters, sorted alphabetically.
Input: String (str).
Output: Iterable of strings (str).
Examples:
assert list(string_permutations("ab")) == ["ab", "ba"] assert list(string_permutations("abc")) == ["abc", "acb", "bac", "bca", "cab", "cba"] assert list(string_permutations("a")) == ["a"] assert list(string_permutations("abcd")) == [ "abcd", "abdc", "acbd", "acdb", "adbc", "adcb", "bacd", "badc", "bcad", "bcda", "bdac", "bdca", "cabd", "cadb", "cbad", "cbda", "cdab", "cdba", "dabc", "dacb", "dbac", "dbca", "dcab", "dcba", ]
How it’s used:
- puzzles and games like Scrabble where word combinations matter;
- cryptography to test possible keys given a set of characters;
- data analysis in genetics for possible gene combinations.