This encoding scheme can take over a minute to encode a simple sentence. The sentence, "The Quick Brown Fox Jumps Over The Lazy Dog" takes 58 seconds to encode.
Extra 'improvements' could further increase the runtime such as changing the block size from 3 to 4. Changing the block size to be the length of the input text could result in the program never finishing unless you happen to get extremely lucky
The current code sets the random seed to '0', this can be changed to any number or changed to an input.