#!/local/bin/ruby (0..7).to_a.permutation { |a| h = {} collision = false (0..7).each { |x| y = a[x] collision = true if h[x+y] break if collision h[x+y] = true } next if collision h = {} collision = false (0..7).each { |x| y = a[x] collision = true if h[x-y] break if collision h[x-y] = true } next if collision puts a.join('-') }