per-layer characters for >>46
>>> print ((lambda mY, xjoin, level, symbol, cell, E, chars, n: (lambda xjoin, cycle: (lambda chars, E: (lambda symbol: xjoin (2 * n - 1, lambda k: xjoin (2 * n - 1, lambda j: symbol (level (n, k, j)), ''), '\n')) (lambda key: symbol (key, cell, E, chars, cycle))) (xjoin (cell * cycle, lambda x: chars [x // cell], ''), xjoin (cell, lambda x: E, ''))) (mY (xjoin), len (chars))) (lambda f, *more: (lambda x: x (x)) (lambda y: f (lambda *args: y (y) (*args), *more)), lambda f: lambda n, g, s: '' if n <= 0 else g (0) if n == 1 else f (n - 1, g, s) + s + g (n - 1), (lambda side, fold, diag: lambda n, k, j: (lambda k, j: (side (k, j) or side (j, k) or fold (k, j) or fold (j, k) or diag (k, j)) - 1) (abs (n - 1 - k), abs (n - 1 - j))) (lambda k, j: (k - 1) // 2 if (k % 2 == 1) and (j <= k - 2) else 0, lambda k, j: (j + 1) // 2 if (k == j + 1) and (j % 2 == 1) else 0, lambda k, j: (k + 1) // 2 if (k == j) and (k % 2 == 1) else 0), lambda key, cell, E, chars, cycle: E if key < 0 else (lambda idx: chars [idx : idx + cell]) (key % cycle * cell), 2, " ", "▓▒░▒", 10))
▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▓▓
▒▒ ▒▒
▒▒▒▒▒▒ ░░░░░░░░░░░░░░░░░░░░░░ ▒▒▒▒▒▒
▒▒ ░░ ░░ ▒▒
▒▒ ░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ░░░░░░ ▒▒
▒▒ ░░ ▒▒ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒▒▒▒▒ ▓▓▓▓▓▓ ▒▒▒▒▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▓▓ ▓▓ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▓▓ ▓▓ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▓▓▓▓▓▓ ▓▓▓▓▓▓ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▓▓ ▓▓ ▒▒ ░░ ▒▒
▒▒ ░░ ▒▒▒▒▒▒ ▓▓▓▓▓▓ ▒▒▒▒▒▒ ░░ ▒▒
▒▒ ░░ ▒▒ ▒▒ ░░ ▒▒
▒▒ ░░░░░░ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ░░░░░░ ▒▒
▒▒ ░░ ░░ ▒▒
▒▒▒▒▒▒ ░░░░░░░░░░░░░░░░░░░░░░ ▒▒▒▒▒▒
▒▒ ▒▒
▓▓ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▓▓
>>>
larger version with colors: http://paste.textboard.org/1c49afd4/raw