I'm not sure if one Report will do it. I'd suggest a couple so that anything that slips through on one might show up on the next. Maybe set the staring date of the reports back to 01/01/2020 so you'll see the last few full years to catch the Expenses or Clients that don't come around every year.
And I know you said you wanted to go back 10-15 years. But if someone hasn't been active in a couple of years, you may want to make the Acct Inactive. And since you never really Delete and Acct, do you really care if you hide the ones that have not been active for the last few years? If you go to enter the same name QBs will remind you there's an Inactive Acct. Also, a Best Practice when you create a new Acct would be to show all the Inactive Accts and look. I'm assuming that once you clean things up you won't be adding too many new Accts.
The Reports to run would be the ones you run all the time. P&L, Income by Customer, Expense by Vendor, etc. My process might be to run Income by Customer Report and then Hide the ones I don't see since 2020. Same with the maybe the Expense by Vendor. Then while NOT showing the Inactive Accts I'd run some more reports and see if anything is missing. Then make the determination if you should really make them Active again or not.
I'm also not sure I'd bother printing the Report. If I'm working on the Chart of Accounts, I'd probably start with the P&L and have it up on one side of the screen and then have the CoA next to it. As I go down the list I can run a Quick Report (All) on any Acct I'm not sure of. The make it Inactive or not and move on. Same idea when you go through the Customers and Vendors. Have a report up with the other list next to it.
Maybe someone will have a better way, but that's what initially comes to mind.