2. that also means you have to keep converting back and forth between strings and bytes when creating checksum while also having to normalize the text with Electrum defined algorithm
3. printing the result whether to UI or to file is also an extremely slow process (that is why your UI hangs when the number of words is higher than 4-5).
4. you don't have to produce ALL possible combinations, it can be reduced by 94% if you validate checksum! (about 6% are correct in BIP39 and i believe it is the close to same value for Electrum).
same with BIP39, if your SHA256 checksum is invalid it will be rejected (reference implementation).