That should help, but even then it seems like it would be possible for some matches to be ignored with my method. For instance, say the word 'post' comes along, and next the word 'dime.' Since 'dime' can fit into the bucket started by 'post,' that bucket now holds 'postdime.' Later the word 'cot' comes along, and now it can't be added to that bucket, so there will be no bucket that ever contains 'post' and 'cot.'
As a test, I tried this short list of words: post dime coat tear. The three words "post coat tear" can fit into 8 letters: aceoprst. Mine failed to find that, as expected, because the 'post' bucket had already been filled with 'dime,' so 'coat' and 'tear' never got a chance at it. If I move 'dime' to the end, then it works, but there's no way to anticipate that. So my method fails, even if I sort the words by length first.
Available for small or large Perl jobs; see my home node.