// permutation generation

to print x = syscall {1 x}
to space = syscall {2 32}
to nl = syscall {2 10}

N = 4
val = array 4
id = 0 - 1

to writeperm | i =
  for i 0 N-1
    print val[i] space
  nl

to visit k | t =
  id = id + 1
  val[k] = id
  if id == (N - 1) 
    writeperm 
  for t 0 N-1
    if val[t] == 0 visit t  
  id = id - 1
  val[k] = 0

to main | i =
  N = 4
  val = array 4
  id = 0 - 1
  for i 0 N-1
    val[i] = 0
  visit 0














