With some help from a very big dictionary, I have found a lot of solutions to this problem. Here are some of my favourites:
Beeish hissiest
Bessie's shesha
Bessie shies hit
Tess sees sissiest
Dish his shiv
Diss is sissiest
Disses his sheet
Niseis SSH heist
These sissies hit
This hisses SSA
I ran out of room to post all of them here, but here is a Github Gist containing all of the possible two-word and three-word solutions to this problem using words in the dictionary I used. This list is supposed to be sorted alphabetically, but appears to have been sorted in "ASCIIbetical" order (e.g. capital letters before lower case letters) instead.
I used several tricks to reduce the amount of work that I had to do, such as:
- Filtering the dictionary for words that matched the Regular Expression
^([BTDN6])?[5EIHS]*([V4AUT])?$
(optionally starts with a letter that can go at the front of the message, then contains 0 or more middle letters, then optionally contains an end letter). This left me with only a few hundred words, which I could manually look through to determine which were invalid.
- Finding characters or sets of characters that could be substituted for each other, such as
EE
and I
. I also noticed that any middle letters could be swapped around regardless of consecutivity. This cut down on my word list as well as helping to ensure that I didn't miss anything.
- Working out sets of words that could fill gaps of certain sizes. This was a minor optimisation when I was building the three-word-long list, as I'd optimised most words that had the same expansion away, but really helped with the four-word-long list; I haven't completed it yet but so far it expands out into almost a megabyte.
- Automating large quantities of the work. As I'm working on a computer anyway, I might as well automate the process of Ctrl+A, Ctrl+C, Ctrl+H, type find and replace, Alt+A, Enter, Esc, Ctrl+Page Up, Ctrl+V for each replacement.1 Interestingly, the number of unique solutions is increased by the number of matching solutions multiplied by the number of replaces for each "find", which looks suspiciously exponential. This has proven absolutely necessary, as a look at the vast, vast solution list so far will show. Unfortunately, this process still has produced duplicates, but I don't have the patience to (work out how to) filter them out right now.
1: Note that this technique can create a significant number of unnecessary duplicate lines which can crash your Notepad instance or OS; most computers have a maximum of $2^{64}$ bytes of memory and the memory requirement is $O(2^n)$ where $n$ is the number of replacements – very suboptimal except in very specific circumstances (i.e. when there is only one "find" per "replace" and all solutions match).