We built and maintain a WordPress plugin that allows you to show your posts, pages, and terms alphabetically. That is, in a Rolodex-, catalogue-, or directory-style list.
The plugin has a short-code for the list, and a widget so you can link to the list from anywhere on your site. If a letter doesn’t have any pages then the widget will display the letter without a link. The list page will omit the display for that letter entirely.
You can show posts from any or multiple post types including the in-built posts and pages. Also supported are post-types from plugins like WooCommerce products. Alternatively, you can show terms like categories or tags.