emacs -q to launch Emacs, then use
M-x ielm and issue:
(defun customizable-variable-value-pairs (&rest other-features)
"Print all the bound customizable variables from the loaded packages and C source code, with their default values.
For those unloaded packages, you can pass them as the arguments so that the bound customizable variables from them will also be printed."
(mapcar (lambda (feature)
(require feature)) other-features)
(mapatoms (lambda (symbol)
(print (format "%s"
(cons symbol (symbol-value symbol))))))))
Here's an example:
(customizable-variable-value-pairs 'whitespace 'tramp)
PS: It is a long list.
to see where the differences between the versions are?
You can search, say
"28.1", in the symbol's docstring to see whether that symbol's default value was changed in version 28.1, or that symbol was introduced in version 28.1, etc.
According to your question description,
C-h n may be another choice:
C-h n runs the command
Display info on recent changes to Emacs.
With argument, display info only for the selected version.
That's all you want.
For example, if you want to see the changes about themes, use
C-s theme in the buffer
** New themes 'modus-vivendi' and 'modus-operandi'.