this is not how brute force supposed to work. you have to think about removing all the bottlenecks and optimizing the algorithm as much as you can instead of adding more bottlenecks. right now your work with "strings" and "printing them" are two huge bottlenecks that slow down anything you want to do.
What do you mean by saying bottlenecks? I don't get it? I can't think of a more productive way to do it. First take all the possible combinations, and then run a program that checks every line.
there is also another step that you are missing which is checking the correctness of the checksum of each seed phrase before moving on to trying to create private keys.
About that, on BIP39 I've noticed that it doesn't matter the checksum. Whatever seed you'll submit on electrum it will take it.