WolframLanguage (Mathematica) 187 Bytes
Möglicherweise ist eine gewisse Größenreduzierung festzustellen. Erklärung folgt ...
t=ToString;p=PadLeft;d=DateObject;Cases[""<>{t/@p[#,If[Length@#<5,4, 5]],t/@ p[#2,2],t/@p[#3,2]}&@@@(IntegerDigits/@#[[1]]&/@DayRange[d@#,d@#2]),x_/;PalindromeQ@x&&PrimeQ@ToExpression@x]&
Testfälle
t = ToString; p = PadLeft; d = DateObject;
Cases["" <> {t /@ p[#, If[Length@# < 5, 4, 5]], t /@ p[#2, 2],
t /@ p[#3, 2]} & @@@ (IntegerDigits /@ #[[1]] & /@ DayRange[d@#, d@#2]),
x_ /; PalindromeQ@x && PrimeQ@ToExpression@x] &[{10011, 10, 1}, {10017, 1, 1}]
(* {"100111001", "100131001", "100161001"} *)
Erklärung des Codes
DayRange[d@#,d@#2]Gibt alle Daten zwischen {10011, 10, 1}und zurück {10017, 1, 1}. In diesem Fall werden ungefähr 5 Jahre und 4 Monate (genau 1920) zurückgegeben. Schaltjahre werden berücksichtigt.
Die Daten werden in Wolfram-Standardformatierung zurückgegeben. Das erste Datum wird beispielsweise als DateObject[List[1,1,1],"Day","Gregorian",-5.] `angezeigt
#[[1]] & /@wird den Teil des Datums in jedem Datum entfernen, der uns betrifft. Gibt im Beispiel DateObject[List[1,3,7],"Day","Gregorian",-5.]das abgekürzte Datum zurück {1,3,7}.
t/@p[#3,2]}oder ToString/@Padleft[#3,2]füllt das dritte Element auf, nämlich die 7, die "für den 7. Tag des Monats" steht "07". Eine ähnliche Auffüllung ist für das einstellige Symbol für den Monat März vorgesehen, dh es 3wird zurückgegeben als "03".
p[#, If[Length@# < 5, 4, 5]]füllt das Jahr mit Nullen auf, um die Länge einer 4- oder 5-stelligen Zeichenfolge zu erreichen. In diesem Fall wird der Januar nämlich 1als "00001" zurückgegeben.
"" <>...verbindet die Saiten. In diesem Fall wird zurückgegeben "000010307".
Cases[...x_ /; PalindromeQ@x && PrimeQ@ToExpression@x] gibt jene Fälle unter den 1920er Daten zurück, die Palindrome und Primzahlen sind.
02-29existiert nur für Jahre, die durch 400 oder (teilbar durch 4 und nicht teilbar durch 100) teilbar sind.