{"id":593,"date":"2008-08-18T19:10:35","date_gmt":"2008-08-18T09:10:35","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/?p=593"},"modified":"2008-08-18T19:19:53","modified_gmt":"2008-08-18T09:19:53","slug":"chemical-word-ladders","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2008\/08\/18\/chemical-word-ladders\/","title":{"rendered":"Chemical Word Ladders"},"content":{"rendered":"<h3>The Challenge<\/h3>\n<p><a href=\"http:\/\/www.nandor.org\/mj\/\">Mark Nandor<\/a> is a school-teacher who has <a href=\"http:\/\/www.wellington.org\/nandor\/chemwords\/chemwords.htm\">exhaustively listed<\/a> all of the 26,811 English words that can be spelled using only chemical symbols.<\/p>\n<p>But, he didn&#8217;t stop there with his musings. He came up with many little restrictions (one letter chemical symbols or no repeating). He also came up with Chemical Word Squares.<\/p>\n<p>Finally, in passing he wrote:<\/p>\n<blockquote><p>\nChemical Word Ladders<\/p>\n<p>A word ladder is a list of words that only one character at a time, as this ladder provided by a reader:<br \/>\nFeN<br \/>\nFeAt<br \/>\nCoAt<br \/>\nCOAt<br \/>\nCHeAt<br \/>\nReHeAt<br \/>\nReHeAr<\/p>\n<p>At some point in the future, I&#8217;ll be looking to generate lists of these.  If you beat me to it, let me know and I&#8217;ll link to your work!\n<\/p><\/blockquote>\n<p>That sounds like a challenge I could take up.<\/p>\n<h3>The Method<\/h3>\n<p>I read in all of the 28,611 English words, and put them into an array of dictionaries, based on their word length.<\/p>\n<table class=\"simple\">\n<tr>\n<th>Word Length<\/th>\n<th>Number of Words in Mark Nandor&#8217;s List<\/th>\n<\/tr>\n<tr>\n<td> 1 <\/td>\n<td> 0 <\/td>\n<\/tr>\n<tr>\n<td> 2 <\/td>\n<td> 47 <\/td>\n<\/tr>\n<tr>\n<td> 3 <\/td>\n<td> 351 <\/td>\n<\/tr>\n<tr>\n<td> 4 <\/td>\n<td> 1310 <\/td>\n<\/tr>\n<tr>\n<td> 5 <\/td>\n<td> 2516 <\/td>\n<\/tr>\n<tr>\n<td> 6 <\/td>\n<td> 3454 <\/td>\n<\/tr>\n<tr>\n<td> 7 <\/td>\n<td> 4278 <\/td>\n<\/tr>\n<tr>\n<td> 8 <\/td>\n<td> 4392 <\/td>\n<\/tr>\n<tr>\n<td> 9 <\/td>\n<td> 3406 <\/td>\n<\/tr>\n<tr>\n<td> 10 <\/td>\n<td> 2417 <\/td>\n<\/tr>\n<tr>\n<td> 11 <\/td>\n<td> 1693 <\/td>\n<\/tr>\n<tr>\n<td> 12 <\/td>\n<td> 1197 <\/td>\n<\/tr>\n<tr>\n<td> 13 <\/td>\n<td> 756 <\/td>\n<\/tr>\n<tr>\n<td> 14 <\/td>\n<td> 449 <\/td>\n<\/tr>\n<tr>\n<td> 15 <\/td>\n<td> 251 <\/td>\n<\/tr>\n<tr>\n<td> 16 <\/td>\n<td> 153 <\/td>\n<\/tr>\n<tr>\n<td> 17 <\/td>\n<td> 80 <\/td>\n<\/tr>\n<tr>\n<td> 18 <\/td>\n<td> 35 <\/td>\n<\/tr>\n<tr>\n<td> 19 <\/td>\n<td> 18 <\/td>\n<\/tr>\n<tr>\n<td> 20 <\/td>\n<td> 5 <\/td>\n<\/tr>\n<tr>\n<td> 21 <\/td>\n<td> 1 <\/td>\n<\/tr>\n<tr>\n<td> 22 <\/td>\n<td> 1 <\/td>\n<\/tr>\n<tr>\n<td> 23 <\/td>\n<td> 1 <\/td>\n<\/tr>\n<\/table>\n<div class=\"aside\">I am not sure why Iodine (Chemical Symbol: I) doesn&#8217;t deserve a mention as a 1-letter word. I didn&#8217;t bother to correct it, though.<\/div>\n<p>Now, I arbitrarily decided what the shortest word-length in the ladder should be. In the example above, the anonymous reader started with a three-letter word. I went with that to begin with.<\/p>\n<p>I created another array of dictionaries, again based on word-length.<\/p>\n<p>In the first (length 3) dictionary, I put all of the 351 three-letter words from the master list.<\/p>\n<p>In the second dictionary (length 4), I put all of the four-letter words that could be built from a three-letter word. I did this by iterating through each of the 1310 four-letter words, and for each one, dropping each letter, and checking if the result was in the previous (3-letter) dictionary.<\/p>\n<p>I now had 680 four-letter words that could be formed from 3-letter words.<\/p>\n<p>I did it again, for five-letter words, filtering out the words that couldn&#8217;t be formed from four-letter words, and so on.<\/p>\n<p>Eventually, the dictionaries were empty.<\/p>\n<p>Now, each word may be able to reduce to more than one of the shorter words. So, for each word in the dictionary, I recorded a list of the shorter words it could reduce to.<\/p>\n<p>All that I needed to do next, was print the result.<\/p>\n<h3>Results<\/h3>\n<h4>How Many Words Can Be Produced From Three-Letters?<\/h4>\n<table class=\"simple\">\n<tr>\n<th>Word Length<\/th>\n<th>Number of Words That Can Be &#8220;Laddered&#8221; from Three-Letter Words<\/th>\n<\/tr>\n<tr>\n<td> 1 <\/td>\n<td> N\/A <\/td>\n<\/tr>\n<tr>\n<td> 2 <\/td>\n<td> N\/A <\/td>\n<\/tr>\n<tr>\n<td> 3 <\/td>\n<td> 351 (All of them) <\/td>\n<\/tr>\n<tr>\n<td> 4 <\/td>\n<td> 680 <\/td>\n<\/tr>\n<tr>\n<td> 5 <\/td>\n<td> 823 <\/td>\n<\/tr>\n<tr>\n<td> 6 <\/td>\n<td> 624 <\/td>\n<\/tr>\n<tr>\n<td> 7 <\/td>\n<td> 346 <\/td>\n<\/tr>\n<tr>\n<td> 8 <\/td>\n<td> 131 <\/td>\n<\/tr>\n<tr>\n<td> 9 <\/td>\n<td> 13 <\/td>\n<\/tr>\n<tr>\n<td> 10 <\/td>\n<td> 0 <\/td>\n<\/tr>\n<\/table>\n<h4>All Nine-Letter To Three-Letter Chemical Ladders<\/h4>\n<table class=\"simple\">\n<tr>\n<th>Nine-Letter Word<\/th>\n<th>Ladders That Lead To That Word<\/th>\n<\/tr>\n<tr>\n<td>pricklier<\/td>\n<td>\n&rarr; prickier &rarr; pickier &rarr; picker &rarr; piker &rarr; pier &rarr; per <br \/>\n&rarr; prickier &rarr; pricier &rarr; pricer &rarr; prier &rarr; pier &rarr; per <br \/>\n&rarr; prickier &rarr; pricker &rarr; picker &rarr; piker &rarr; pier &rarr; per <br \/>\n&rarr; prickier &rarr; pricker &rarr; pricer &rarr; prier &rarr; pier &rarr; per \n<\/td>\n<\/tr>\n<tr>\n<td>upraisers<\/td>\n<td>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pes <br \/>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pis <br \/>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; priss &rarr; piss &rarr; pis <br \/>\n&rarr; praisers &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; ass <br \/>\n&rarr; praisers &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; pas <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pes <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pis <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; priss &rarr; piss &rarr; pis <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pes <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pis <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; priss &rarr; piss &rarr; pis <br \/>\n&rarr; upraises &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; ass <br \/>\n&rarr; upraises &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; pas <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pes <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pis <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; priss &rarr; piss &rarr; pis \n<\/td>\n<\/tr>\n<tr>\n<td>broachers<\/td>\n<td>\n&rarr; broaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; ras <br \/>\n&rarr; broaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; bas \n<\/td>\n<\/tr>\n<tr>\n<td>saltiness<\/td>\n<td>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lies &rarr; lis <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; ins <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; lis \n<\/td>\n<\/tr>\n<tr>\n<td>confiners<\/td>\n<td>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; ones &rarr; oes <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; ones &rarr; ons <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; cons &rarr; ons <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; cons &rarr; cos <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; coins &rarr; cons &rarr; ons <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; coins &rarr; cons &rarr; cos <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; ons <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; cos <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; ons <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; cos \n<\/td>\n<\/tr>\n<tr>\n<td>smaltines<\/td>\n<td>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lies &rarr; lis <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; ins <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; lis \n<\/td>\n<\/tr>\n<tr>\n<td>caressers<\/td>\n<td>\n&rarr; caresses &rarr; cresses &rarr; cesses &rarr; esses &rarr; eses &rarr; ess <br \/>\n&rarr; caresses &rarr; cresses &rarr; cesses &rarr; esses &rarr; eses &rarr; ess \n<\/td>\n<\/tr>\n<tr>\n<td>sheathers<\/td>\n<td>\n&rarr; heathers &rarr; heaters &rarr; haters &rarr; hates &rarr; hats &rarr; has <br \/>\n&rarr; sheathes &rarr; sheaths &rarr; heaths &rarr; heths &rarr; hehs &rarr; hes <br \/>\n&rarr; sheathes &rarr; sheaths &rarr; heaths &rarr; heats &rarr; hats &rarr; has \n<\/td>\n<\/tr>\n<tr>\n<td>splashers<\/td>\n<td>\n&rarr; plashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; plashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; ass <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; pas <br \/>\n&rarr; slashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; slashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; slashers &rarr; slashes &rarr; sashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; ass <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; pas <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las <br \/>\n&rarr; splashes &rarr; slashes &rarr; sashes &rarr; ashes &rarr; shes &rarr; hes \n<\/td>\n<\/tr>\n<tr>\n<td>scrappers<\/td>\n<td>\n&rarr; crappers &rarr; rappers &rarr; rapers &rarr; rapes &rarr; raps &rarr; ras <br \/>\n&rarr; crappers &rarr; rappers &rarr; rapers &rarr; rapes &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; rapes &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; craps &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; scraps &rarr; craps &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; rapes &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; craps &rarr; raps &rarr; ras <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; scraps &rarr; craps &rarr; raps &rarr; ras \n<\/td>\n<\/tr>\n<tr>\n<td>chorusses<\/td>\n<td>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; hes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; hes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; coss &rarr; cos <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; hes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; hes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; coss &rarr; cos \n<\/td>\n<\/tr>\n<tr>\n<td>breachers<\/td>\n<td>\n&rarr; breaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; ras <br \/>\n&rarr; breaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; bas \n<\/td>\n<\/tr>\n<tr>\n<td>launchers<\/td>\n<td>\n&rarr; launches &rarr; launces &rarr; lances &rarr; laces &rarr; lacs &rarr; las \n<\/td>\n<\/tr>\n<\/table>\n<h3>Pushing Further<\/h3>\n<p>I made an arbitrary starting point of three-letter words near the beginning. Almost as an afterthought, I decided to do the run again, but based on two-letter words.<\/p>\n<p>I expected to get poorer results, with shorter maximum words (or at the least, fewer of them). To my surprise, while I did get fewer three- to seven-letter words, by the time it got to eight-letter words, it had stabilized.<\/p>\n<p><em>I got exactly the same list of nine-letter words coming out!<\/em><\/p>\n<h4>How Many Words Can Be Produced From Two-Letters?<\/h4>\n<table class=\"simple\">\n<tr>\n<th>Word Length<\/th>\n<th>Number of Words That Can Be &#8220;Laddered&#8221; from Two-Letter Words<\/th>\n<\/tr>\n<tr>\n<td> 1 <\/td>\n<td> N\/A <\/td>\n<\/tr>\n<tr>\n<td> 2 <\/td>\n<td> 47 (All of them)<\/td>\n<\/tr>\n<tr>\n<td> 3 <\/td>\n<td> 183 <\/td>\n<\/tr>\n<tr>\n<td> 4 <\/td>\n<td> 474 <\/td>\n<\/tr>\n<tr>\n<td> 5 <\/td>\n<td> 702 <\/td>\n<\/tr>\n<tr>\n<td> 6 <\/td>\n<td> 579 <\/td>\n<\/tr>\n<tr>\n<td> 7 <\/td>\n<td> 338 <\/td>\n<\/tr>\n<tr>\n<td> 8 <\/td>\n<td> 131 <\/td>\n<\/tr>\n<tr>\n<td> 9 <\/td>\n<td> 13 <\/td>\n<\/tr>\n<tr>\n<td> 10 <\/td>\n<td> 0 <\/td>\n<\/tr>\n<\/table>\n<h4>All Nine-Letter To Two-Letter Chemical Ladders<\/h4>\n<table class=\"simple\">\n<tr>\n<td>pricklier<\/td>\n<td>\n&rarr; prickier &rarr; pickier &rarr; picker &rarr; piker &rarr; pier &rarr; per &rarr; er <br \/>\n&rarr; prickier &rarr; pricier &rarr; pricer &rarr; prier &rarr; pier &rarr; per &rarr; er <br \/>\n&rarr; prickier &rarr; pricker &rarr; picker &rarr; piker &rarr; pier &rarr; per &rarr; er <br \/>\n&rarr; prickier &rarr; pricker &rarr; pricer &rarr; prier &rarr; pier &rarr; per &rarr; er \n<\/td>\n<\/tr>\n<tr>\n<td>upraisers<\/td>\n<td>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pes &rarr; es <br \/>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pis &rarr; is <br \/>\n&rarr; praisers &rarr; praises &rarr; prises &rarr; priss &rarr; piss &rarr; pis &rarr; is <br \/>\n&rarr; praisers &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; ass &rarr; as <br \/>\n&rarr; praisers &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; pas &rarr; as <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pes &rarr; es <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pis &rarr; is <br \/>\n&rarr; uprisers &rarr; uprises &rarr; prises &rarr; priss &rarr; piss &rarr; pis &rarr; is <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pes &rarr; es <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; pries &rarr; pies &rarr; pis &rarr; is <br \/>\n&rarr; upraises &rarr; praises &rarr; prises &rarr; priss &rarr; piss &rarr; pis &rarr; is <br \/>\n&rarr; upraises &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; ass &rarr; as <br \/>\n&rarr; upraises &rarr; praises &rarr; prases &rarr; pases &rarr; pass &rarr; pas &rarr; as <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pes &rarr; es <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; pries &rarr; pies &rarr; pis &rarr; is <br \/>\n&rarr; upraises &rarr; uprises &rarr; prises &rarr; priss &rarr; piss &rarr; pis &rarr; is \n<\/td>\n<\/tr>\n<tr>\n<td>broachers<\/td>\n<td>\n&rarr; broaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; ras &rarr; as <br \/>\n&rarr; broaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; bas &rarr; as \n<\/td>\n<\/tr>\n<tr>\n<td>saltiness<\/td>\n<td>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lies &rarr; lis &rarr; is <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; ins &rarr; is <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; lis &rarr; is \n<\/td>\n<\/tr>\n<tr>\n<td>confiners<\/td>\n<td>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; ones &rarr; oes &rarr; es <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; ones &rarr; oes &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; ones &rarr; ons &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; cons &rarr; ons &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conies &rarr; cones &rarr; cons &rarr; cos &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; coins &rarr; cons &rarr; ons &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; coins &rarr; cons &rarr; cos &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; ons &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; cos &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; ons &rarr; os <br \/>\n&rarr; confines &rarr; conines &rarr; conins &rarr; conns &rarr; cons &rarr; cos &rarr; os \n<\/td>\n<\/tr>\n<tr>\n<td>smaltines<\/td>\n<td>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lies &rarr; lis &rarr; is <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; ins &rarr; is <br \/>\n&rarr; saltines &rarr; salines &rarr; alines &rarr; lines &rarr; lins &rarr; lis &rarr; is \n<\/td>\n<\/tr>\n<tr>\n<td>caressers<\/td>\n<td>\n&rarr; caresses &rarr; cresses &rarr; cesses &rarr; esses &rarr; eses &rarr; ess &rarr; es <br \/>\n&rarr; caresses &rarr; cresses &rarr; cesses &rarr; esses &rarr; eses &rarr; ess &rarr; es \n<\/td>\n<\/tr>\n<tr>\n<td>sheathers<\/td>\n<td>\n&rarr; heathers &rarr; heaters &rarr; haters &rarr; hates &rarr; hats &rarr; has &rarr; as <br \/>\n&rarr; sheathes &rarr; sheaths &rarr; heaths &rarr; heths &rarr; hehs &rarr; hes &rarr; es <br \/>\n&rarr; sheathes &rarr; sheaths &rarr; heaths &rarr; heats &rarr; hats &rarr; has &rarr; as \n<\/td>\n<\/tr>\n<tr>\n<td>splashers<\/td>\n<td>\n&rarr; plashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; plashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; plashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; plashers &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; ass &rarr; as <br \/>\n&rarr; plashers &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; pas &rarr; as <br \/>\n&rarr; slashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; slashers &rarr; lashers &rarr; lasers &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; slashers &rarr; lashers &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; slashers &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; slashers &rarr; slashes &rarr; sashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; splashes &rarr; plashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; ass &rarr; as <br \/>\n&rarr; splashes &rarr; plashes &rarr; pashes &rarr; pases &rarr; pass &rarr; pas &rarr; as <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; ass &rarr; as <br \/>\n&rarr; splashes &rarr; slashes &rarr; lashes &rarr; lases &rarr; lass &rarr; las &rarr; as <br \/>\n&rarr; splashes &rarr; slashes &rarr; sashes &rarr; ashes &rarr; shes &rarr; hes &rarr; es \n<\/td>\n<\/tr>\n<tr>\n<td>scrappers<\/td>\n<td>\n&rarr; crappers &rarr; rappers &rarr; rapers &rarr; rapes &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; crappers &rarr; rappers &rarr; rapers &rarr; rapes &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; rapes &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; craps &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; scraps &rarr; craps &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; rapes &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; crapes &rarr; craps &rarr; raps &rarr; ras &rarr; as <br \/>\n&rarr; scrapers &rarr; scrapes &rarr; scraps &rarr; craps &rarr; raps &rarr; ras &rarr; as \n<\/td>\n<\/tr>\n<tr>\n<td>chorusses<\/td>\n<td>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; hes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; hes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; coss &rarr; cos &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; houses &rarr; hoses &rarr; hoes &rarr; hes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; hoses &rarr; hoes &rarr; hes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes &rarr; es <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; oses &rarr; oes &rarr; os <br \/>\n&rarr; choruses &rarr; chouses &rarr; choses &rarr; coses &rarr; coss &rarr; cos &rarr; os \n<\/td>\n<\/tr>\n<tr>\n<td>breachers<\/td>\n<td>\n&rarr; breaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; ras &rarr; as <br \/>\n&rarr; breaches &rarr; braches &rarr; braces &rarr; braes &rarr; bras &rarr; bas &rarr; as \n<\/td>\n<\/tr>\n<tr>\n<td>launchers<\/td>\n<td>\n&rarr; launches &rarr; launces &rarr; lances &rarr; laces &rarr; lacs &rarr; las &rarr; as \n<\/td>\n<\/tr>\n<\/table>\n<h3>Run-Time<\/h3>\n<p>The run-time to do all of this was trivial; so trivial, I never actually timed it accurately.<\/p>\n<p>It took about 3 seconds to read in the file, and generate both sets of dictionaries. Recursing through to print out the results took another 15 seconds or so.<\/p>\n<p>All of this is on an aging machine, running Python, with no attempts to optimise.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In which Julian stumbles over the concept of Chemical Word Ladders, and proceeds to generate them.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[28,33,34],"tags":[],"class_list":["post-593","post","type-post","status-publish","format-standard","hentry","category-doubleplus-geek","category-puzzle-solving","category-software-development"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=593"}],"version-history":[{"count":5,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/593\/revisions"}],"predecessor-version":[{"id":597,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/593\/revisions\/597"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}