This is my proposal:
% --- facts
#const n=11.
seq_pos(1..n).
seq_val(0..n-1).
diff_val(1..n-1).
% --- choice rules
1 { seq(P,V) : seq_val(V) } 1 :- seq_pos(P).
diff(P,D) :- seq(P,V1), seq(P+1,V2), P < n, D = |V1 - V2|.
% --- constraints
:- seq(P1,V), seq(P2,V), P1 != P2.
:- diff_val(D), not diff(_,D).
% --- output
#show seq/2.
Output:
clingo version 5.7.2 (6bd7584d)
Reading from stdin
Solving...
Answer: 1
seq(1,5) seq(2,8) seq(3,3) seq(4,7) seq(5,6) seq(6,0) seq(7,10) seq(8,1) seq(9,9) seq(10,2) seq(11,4)
SATISFIABLE
Models : 1+
Calls : 1
Time : 0.085s (Solving: 0.01s 1st Model: 0.01s Unsat: 0.00s)
CPU Time : 0.000s
.