it’s right there in the name
very inefficient but entertaining.
it’s an entertaining password generator.
Here is a less entertaining password generator
$> openssl rand -hex 40 0b184b191ff27188beb2c50293cc7304086bbf9fbc6b579b25c79896c0e484d89ba938360f6882db
$> openssl rand -hex 2048 095613ba2c3fc238f47d7721d7a5af69ee80cde53f537c1ed3c0344efe255ec137d4578410c07b13a9d097c5600dea234e9c8373febcf9d63b04f93d1fc834eb50d984dc42ca6728363b7b2d8cc7fc9c644d1a0f76720ef9c9156f3cd2644a19e4fbd451130e8a506321d4ad4ea6f589e9ef20caafb5bbddeccdaeb1dd1cded55e6c553775bfd4bd99a7bd46e814517bd247b3f454821a19413c096187dfe26a4143e9b02e33af88fb4d14dbc83959181caada79296285471633070b889f512ddc52106908c02be6b7b576d648cbbe1e9cd0bee906d77674e99ffa999a87946c20fb7bb0b2a8d60ba56836462a7c72b09aee66013a6fa14f4133c76fb20f6aa1f010543744c6c4be483f5a4f1506d62e04845c42f9dbb1619ff5e30e6f45d54601d86d41c9ad2b08be0c1ff27fe06fe57b63d346a3c35af1255bfaff013054f1988827e5a8f8a54e6c9775f41ef9b67f90829cc8fe63b876c3612e111a7b9204c731db7282c2b2b38128c8132bc6b7112edb28bd2bbdf72a282ceeb422d86134cd4f532257da9768dba3ec639238bc8a469af48a36da2f2b336d4cfe71eb7357db26c89a505295a8acde15a878f2ac1116b36f23aae8c15ce9d1140737eee8a02605f74069b48b93f741096b9cef9628109dc28cf0e79113c0d69dfe5bdbfe1003e0e9503ad91d341c7f9a9bf131ca1c6a5e3762ede73567d4d3b5f480b4b7134f915a9b4fb6eb01f24e0bda18d595698c4e3ba02bdfd925bdba5c5403df01996a1a3fb7aad9e3f6f81dcef46c6a7877a5c7dbb044623eb605e3c7d9c10cd8da4b572718669332d2d364a711ce5d36f50cf4ae93e03fd28b445f06aff444e8e405e2901e4fd689d5c3e1628a582dba0da84796f3e2d9e06f649ceb263ac08c83b1c42f98628d070efd9fd15f3b3cb16d8d8618945802705485fea7bd44e47a194111e64158aaf375849792f0aefbc20b4e92adb261bbefbaf2ac915d80221a78d91b9a7d4d7bf9140bd5917a413d5c08b7c92af7b4f10e7526b6c9aedce23fc5d2c22b23e86c25e91f5e1a107964659267bba4ac25ee53b5226b7a32ba6cf182e0f3cdcc9e02f5c4dc7317aca34af1da2ddd8603af84e2172cb5c51e01f186a17ca3ac34a1953895501f0ecd496ed775213f9b16c11541121969818859852c15a0ddc150fd5096654dacfc46d67061188b34046a14cf5356c92e59a4b591ba48d6bb64bc43665f121e7d2ef3f23892a20488036d6f93e9ba191835b585dabf53f89aff62c6569b485f010297acc85f3b3f59d8ce19cbf9558514e5d5f9f39375d7c8fb01ec62c4cc51cf775b622f9c2c572029fb8b132ae3def03e72e1888366ae7b3b6217072780f318e809390e9b0e08a8a0817cb8d6f2f89921056d44b541e1c058ecae2211417f7892608c455c571a47a0ff8257bb1be06aace38a654ea8fb69a6634201b8cf876549a93cc0b6a688fbd1739f94252e73f418fa7867d81221732aeba9d26c1802234e1a8d64a2fff56392a2a7a180d5a082e588a5cbac2dfb771113df64c5bc008ee5b4403e872b681aab5360beab99064dd574ab7b3ed351c6f7850787b8866acc035967e799bca17d5bfa1462f664f4965b81da3f8c5a408c0979d1a3ee50db06e8b89dd3315aa7544f48a4ca1dda10923018f8974f0a0c2ad614e84d2c4aae7ac3697bda8075af2f890205cfe1bb73f57bea220d656498461e6e3710f0178a10df8458ed9f855e9216345f9df915694ebd68aa05191cc7342993d2751ee8e6fb1ab7d3dd9075d8e04317d79f0d57f035965f8de3e0ea521fc346140faf06c162f7b8ae61b052badf3c566ebc919dd00a331fa4109677329cb7720efb4a808e752df9484f76fbcdb8fc7e83dfbe816e6b3b7a6ffc8ca2b15def5450844b4c33ce43d8d67dac70569fca185ae2ce804c8763ebbfe47f864d150e92e50d26b7b9142bbcc7072771d612030869d1942e571713d369eb85f73c3c85fdafc7ef490a4f1c0ce8d9d6824f79af2cb286260496100495065f5de0e3feb7655fe1895046575daa0864b16dafb6baaad6fc05738f361c0d7eabdc6a3d89747e6e511438deab496e33cdc08fd12854db19795997f077da3e58bb3bf930b8e41d6588da29c60bd71459f5079d783a8f9d361a066a39a61af739eda939e340aab6eaad2b2c599552c49449e4fcfb3b9128d61d816b092c17a1e662be5753ec21c87c0982657d2344241c93cbc530d8ba8e64d9bd06c3dc0d7bfb1519d3faca70360378fee210391a97d53c721f2d121bae5bb50d88f187ad107b44af290ef7b99435bac098df5b0dfc964e5877bc81ee609e27fb5bdf618736b2806942786eee98fd33a37924132701e3ccf0373870f6458a88f6f1adca3967ff3e1633cd246dad560d1afd8cb73a0eb09883467a101c38daef92b4493a6df7737419704083beea58b2bf3ce286db9101b3b74e0b109720d3f2d527ce1623847c2e9710f4b8a29e27779b030c7835a9cf2217a65d8b19374ea4d5b8e3651caae3cca37339a9e6dd1480c1ee3c6b76c1a5010ca114de07f4c5894b8691a64451349a9059216b40f697d08fb54d16e0b38ac6c6edb6412433e4c703fc352e232fbc4f7d3d32feb530f0452d44d223b0fcae92585606a6d8bbc2199ae1e108b7c3affb337f84c4ff85e549267ac544fd9d2342dd23940218b3f8bfe2b81180875f3f4e323798279601b504ab5e18a1dd5b0948d91198771599a54b7cb9162bfc483dfe373a655d7cf8607e01754a6711248ea1d959b3dd7ca0dc620ec1ea33a2073f7ca31dd76d8659460591ec30fcb260d04365496a5214feeb3352cdbf2de344fb69abba9c928479a26f3dfbb6fecf9c0e15e351c1b0e468a2e24acea45096b3742ae590
Throw in a few special characters and you are good to go!





There are tools to check README files. Which would give suggestions on what needs to be fixed.
If you are using Sphinx anyway, would suggest going with a ReStructuredText rather than vanilla markdown.
In your Sphinx docs, can mix rst and md but the index file must be index.rst, not index.md
Then use this sphinx-external-toc-strict for structuring your Sphinx docs.
restview for real time editing of restructuredtext file