Monthly Downloads: 12
Programming language: Elixir
License: GNU General Public License v3.0 only
Tags: Text And Numbers    
Latest version: v1.0.1

RandomStringGenerator alternatives and similar packages

Based on the "Text and Numbers" category.
Alternatively, view RandomStringGenerator alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of RandomStringGenerator or a related project?

Add another 'Text and Numbers' Package



Build Status codecov

A module to generate a random string based on a given string pattern


The package can be installed by adding random_string_generator to your list of dependencies in mix.exs:

def deps do
    {:random_string_generator, "~> 1.0.0"}


Accepted string patterns:

Use l for lower case letter from a to z

Use L for upper case letter from A to Z

Use d for digit from 0 to 9

Use p for punctuation

Use c for custom character

Punctuation is any character on the following group:

!, ", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \, ], ^, _, {, |,}, ~ and `

Generate a string containing 2 lower case letters followed by 2 digits.
iex> RandomStringGenerator.generate("lldd")
Generate a string containing 2 upper case letters.
iex> RandomStringGenerator.generate("LL")
Generate a string containing 2 punctuations.
iex> RandomStringGenerator.generate("pp")


Everything that is not l,L,d,p and c is treated as a delimiter so the pattern -dl? is interpreted as a hyphen followed by a digit followed by a lower case letter followed by a question mark.

Generate a string containing 2 letters followed by a hyphen.
iex> RandomStringGenerator.generate("ll-")


In order to generate a string containing the characters l,L,d and p as a delimiter, you need to use the backslash twice in order to scape it.

Generate a string containing 2 digits followed by the letters lLdp.
iex> RandomStringGenerator.generate("dd\\l\\L\\d\\p")

Custom Chars

I order to generate a string based on a given custom pattern ccc a list of possible values need to be passed as an argument.

Generate a string containing 3 custom chars from the list ["+", "-", "/", "*"].
iex> RandomStringGenerator.generate("ccc", ["+", "-", "/", "*"])

If no custom char list is passed the with character c it will be treated as a delimiter as in the example below where it generates a string containing one digit followed by the letter c followed by another digit

iex> RandomStringGenerator.generate("dcd")


In order to generate a string based on a given patter Lldd where those characters are placed in a random order, the shuffle/1 function should be used.

Generate a string containing 2 lower case letters, 2 digits in random order.
iex> RandomStringGenerator.generate("Lldd") |> RandomStringGenerator.shuffle()

Full documentation at https://hexdocs.pm/random_string_generator.