# Python 3, 55 bytes [(Cracked)](http://codegolf.stackexchange.com/a/112677/32353)
PCRE / Python / Golang flavor.
def [triangles=(1,SNAKE)]{27}:print[]SNAKE(--:>or[]{48}
*(Be reminded that [Full match is required](http://codegolf.stackexchange.com/a/112472/32353). Assume `^` and `$` when testing.)*
Sample output:
[1, 2, 3, 4]
[8, 7, 6, 5]
[9, 10, 11, 12]
[16, 15, 14, 13]
----
Original solution:
def r(N,S=1,A=1,K=range,E=list):print(E(K(S,S+N))[::A])or(S+N>N*N)or(r(N,S+N,-A,K,E))
Should have trimmed 4 bytes :p