可以拆成三个文件。
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1000,1,9999) do (
  set a=%%i
  ::AABB
  if "!a:~0,1!"=="!a:~1,1!" (
    if not "!a:~0,1!"=="!a:~2,1!" (
      if "!a:~2,1!"=="!a:~3,1!" (
        echo !a!
        if "!a:~2,1!"=="0" echo !a:~2,2!!a:~0,2!
      )
    )
  )
  ::ABAB
  if "!a:~0,1!"=="!a:~2,1!" (
    if not "!a:~0,1!"=="!a:~1,1!" (
      if "!a:~1,1!"=="!a:~3,1!" (
        echo !a!
        if "!a:~1,1!"=="0" echo !a:~3,1!!a:~2,1!!a:~1,1!!a:~0,1!
      )
    )
  )
  ::ABBA
  if "!a:~0,1!"=="!a:~3,1!" (
    if not "!a:~0,1!"=="!a:~1,1!" (
      if "!a:~1,1!"=="!a:~2,1!" (
        echo !a!
        if "!a:~1,1!"=="0" echo !a:~1,1!!a:~0,1!!a:~3,1!!a:~2,1!
      )
    )
  )
)
echo OK.
pause>nul