In a large soup pot or Dutch oven, add olive oil and cook diced bacon over medium heat until crispy. Remove and set aside, leaving a bit of bacon fat in the pot.
Add onion, carrots, and celery to the pot. Cook for about 5 minutes, stirring occasionally, until softened. Add the garlic and cook another minute until fragrant.
Stir in the canned diced tomatoes and chicken stock. Bring to a simmer and scrape up any browned bits from the bottom of the pot
Add the kidney beans, cannellini beans, chickpeas, Italian parsley, and basil. Let it simmer for 20 minutes so the flavors meld together.
Stir in the ditalini (or your pasta of choice) and cook until tender, about 8-10 minutes. If needed, add extra stock or water to maintain your desired soup consistency.
Taste and adjust seasoning with salt and pepper. Garnish with cooked bacon, more parsley, and grated Parmesan if desired.