# [dc] (GNU), 2 distinct characters (`z`, `P`), 134660653084537 bytes
The behavior of `P` on number is a GNU extension.
(can't post code)
Anyway, this is the generator program: [Try it online!][TIO-kktqnsj2]
You can verify manually that for some smaller text (such as `abca`) it produces the correct output. It will only actually try to construct the program if the resulting program size does not exceed \$2^{16}\$ (configurable in the program)
Assuming that the actual [dc] implementation doesn't have any problem with having about that many numbers on the stack.
I came up with the idea when someone [mentioned in chat](https://chat.stackexchange.com/transcript/message/56978380#56978380) that it's possible to solve the challenge with 2 distinct bytes.
[Python 3.8 (pre-release)]: https://docs.python.org/3.8/
[TIO-kktqnsj2]: https://tio.run/##jVRJj9owFD6TX@H6MjYESqYqGiE86iCNqkpdUDs9tBFCIThgCHbGdlhG/e/02Qlbe5nDC/Zbvve9xRR7u1Dy3V2hD4bhpwVHz6VIV2iq1VaiTO3QslwXBqkN18iCOU9e9mim5rjDZapmnNyUdzf0kGm1RuvELpBYF0pbJMyztkF9cYbj2ZTTQquUGxP4ILsvhJwfwz4LY0P0VBY5D9FPKZQ8xmWlTK1SuQkKLaQlNEiM4S6TtB2HNJnuLTdkih@GOER4KuaYMkZ67weDuz@9Hg0@nCA6uS4naZIuOFknOyNeOPuqJKfBjGdok@QlJ6LvgEO09L@0fQ/fPtLcllr@m9LEor8cH3O@Ns9W6dX/aXzpsa889pYsV4kFcNcZpxmP@0HjWPqALQcs55IYGjQ2rKYOcHAVGVqy2nhiTjatKETxZgwOU26gpFckZMQNsCNkBqEuMlMarYAw0omcc7J0mFWiVkSBXmP7I1UaJrh1IMxXugzRCkIdrcr6hh1RUSJnaNOOBsz7x11XYsPzY2shiTuEiFTGdjRuuVz@Rpu3vppWdQP8uk4XErhPTcQdz1y6IerSeo/wd27K3LodhL2c62TtSpnbRR9XYR6BBtNcpSt4I0O0EkP0BeQjyBPICOQR5DfILzHEHVPkwi2oYN1guxA5R6IVDRzpCoT6gk/Y9@y22SRRt0nAjcKsRItFR3bsksXb2lFQUHqoWMA8oKUnlwG4RD3on98FIAAdcfUxjKu57dzc1klB3BJPJvAcJ5Nzf@KoPz7f/Cyr@BbDL7hJdsDwUjfCp2V09VV6eHYXrScXhquONuoSR1Xb@/ikqr1hh@VGrfjsW2mL0rLzX0dHl5IAjxjPUvfY2xy@VdQY1CEydqauI0afRo@0U@lPqR9SWyY5Uh7fDfwqIT0/tCsezASHw18 "Python 3.8 (pre-release) – Try It Online"
[dc]: https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html