Python - All occurrences of substring in string Last Updated : 12 Jul, 2025 Comments Improve Suggest changes Like Article Like Report A substring is a contiguous occurrence of characters within a string. Identifying all instances of a substring is important for verifying various tasks. In this article, we will check all occurrences of a substring in String.Using re.finditer()re.finditer() returns an iterator yielding match objects for all non-overlapping matches of a pattern in a string that allows to check for specific patterns, such as digits, throughout the string. Python import re # Define the input string and substring s = "hello world, hello universe" substring = "hello" # Find all occurrences using re.finditer positions = [match.start() for match in re.finditer(substring, s)] print(positions) Output[0, 13] Explanation:Use re.finditer() to find matches: The re.finditer() function searches for all occurrences of the substring "hello" in the string "hello world, hello universe", returning an iterator of match objects.Extract start positions: A list comprehension is used to extract the starting position of each match using match.start().Using str.find() in a loopUsing str.find() in a loop allows to find all occurrences of a substring by repeatedly searching for the next match starting from the last found index. The loop continues until no more matches are found (when find() returns -1). Python s = "hello world, hello universe" substring = "hello" # Find all occurrences using str.find in a loop positions = [] start = 0 while True: start = s.find(substring, start) if start == -1: break positions.append(start) start += len(substring) print(positions) Output[0, 13] ExplanationUse find() in a loop: The find() method is called repeatedly, starting from the last found position, to locate each occurrence of the substring "hello" in the string "hello world, hello universe".Track positions: Each found position is added to the positions list, and the start index is updated to move past the current match to continue searching for subsequent occurrences.Using List Comprehension with range():List comprehension with range() can be used to generate all starting positions of a substring by iterating over the string indices. It checks each possible position within the string to see if the substring matches starting from that index. Python s = "hello world, hello universe" substring = "hello" # Find all occurrences using list comprehension positions = [i for i in range(len(s)) if s.startswith(substring, i)] print(positions) Output[0, 13] ExplanationUse list comprehension with startswith(): The list comprehension iterates over each index i in the string, checking if the substring "hello" starts at that position using text.startswith(substring, i).Store starting positions: If the substring matches at index i, that index is added to the positions list. Comment More info M manjeet_04 Follow Improve Article Tags : Python Python Programs Python string-programs Explore Python FundamentalsPython Introduction 3 min read Input and Output in Python 4 min read Python Variables 5 min read Python Operators 5 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 7 min read Python Functions 5 min read Recursion in Python 6 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 5 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 2 min read Python MySQL 9 min read Python Packages 12 min read Python Modules 7 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 6 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 15+ min read StatsModel Library- Tutorial 4 min read Learning Model Building in Scikit-learn 8 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 7 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 7 min read Python | Build a REST API using Flask 3 min read How to Create a basic API using Django Rest Framework ? 4 min read Python PracticePython Quiz 3 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like