Make the lowest number square that equals n!
A number square containing the values 1, 2, 3, 4 looks like this:
To work out what a number square is, you first make four numbers by reading across the rows and across the columns; for the example above you would get 12, 34, 13 and 24, then ...
Python 2, 126 bytes
def f(s):x=[''.join(" -|"[cmp(ord(a),ord(b))]for a in s)for b in s];y=[a+b[::-1]for a,b in zip(x,x)];print'\n'.join(y+y[::-1])
This is essentially a port of my Actually solution.
Try it online
x=[''.join(" -|"[cmp(ord(a),ord(b))]for a in s)for b in s] # ge...