Self Referential Puzzle - medium 2 The following puzzle was asked in puzzling SE. This puzzle is quite hard to solve by hand because every answer depends on another answer. So, for example, a solution with all answers being A does not work because then the question 7 would contradict question 8, for example.

One of the answers there at puzzling SE suggested to write a program to test all possible answers and show one of them (if it exists). So, I'm bringing this to the experts :)

The puzzle consists in finding an array of ten characters (each one of them being either A, B, C, D or E) that satisfies all the following questions (where each character in the array is an "answer" and its index is a "question") without contradiction:


The first question whose answer is D is the question


  A.  8
  B.  7
  C.  6
  D.  5
  E.  4  

Identical answers have questions


  A.  3 and 4
  B.  4 and 5
  C.  5 and 6
  D.  6 and 7
  E.  7 and 8  

The number of questions with the answer E is


  A.  1
  B.  2
  C.  3
  D.  4
  E.  5  

The number of questions with the answer A is


  A.  1
  B.  2
  C.  3
  D.  4
  E.  5  

The number of questions with the answer A equals the number of questions with the answer


  A.  A
  B.  B
  C.  C
  D.  D
  E.  none of the above  

The last question whose answer is B is the question


  A.  5
  B.  6
  C.  7
  D.  8
  E.  9  

Alphabetically, the answer to this question and the answer to the following question are


  A.  4 apart
  B.  3 apart
  C.  2 apart
  D.  1 apart
  E.  the same  

The answer to this question is the same as the answer to the question


  A.  1
  B.  2
  C.  3
  D.  4
  E.  5  

The number of questions whose answers are consonants


  A.  3
  B.  4
  C.  5
  D.  6
  E.  7  

The answer to this question is


  A.  A
  B.  B
  C.  C
  D.  D
  E.  E  



The objective of this chalenge is to write the shortest program that can generate all the possible answers and check how many of them (if any) satisfy what every one of the previous questions are asking (the output of the program would be the list of the answers that satisfy all the questions without contradiction).

The original test can be found here (although it is irrelevant for this chalenge).
Pyth, 104 bytes
f!s[nhd-8xd3@.+d+3@d1nh@d2/d4nh@d3/d0!&amp;/3@d4!-/d0/d@d4!-10x_d1@d5n@d6a4@.+d6n@d7@d@d7!+3@d8@ds/LdS3)^U5T

It... uh... takes a while to run. Try it online... if the server doesn't time out or run out of memory.
Explanation coming SoonTM.  Prints all the valid solutions as a 0-based list (ten elements long in which A is represented by 0, B by 1, and so on).
This is a naive solution that can probably be golfed a lot.  Just wanted to get something out there.