diff --git a/searches/double_linear_search_recursion.py b/searches/double_linear_search_recursion.py
new file mode 100644
index 000000000000..1c483e974ca7
--- /dev/null
+++ b/searches/double_linear_search_recursion.py
@@ -0,0 +1,35 @@
+def search(list_data: list, key: int, left: int = 0, right: int = 0) -> int:
+    """
+    Iterate through the array to find the index of key using recursion.
+    :param list_data: the list to be searched
+    :param key: the key to be searched
+    :param left: the index of first element
+    :param right: the index of last element
+    :return: the index of key value if found, -1 otherwise.
+
+    >>> search(list(range(0, 11)), 5)
+    5
+    >>> search([1, 2, 4, 5, 3], 4)
+    2
+    >>> search([1, 2, 4, 5, 3], 6)
+    -1
+    >>> search([5], 5)
+    0
+    >>> search([], 1)
+    -1
+    """
+    right = right or len(list_data) - 1
+    if left > right:
+        return -1
+    elif list_data[left] == key:
+        return left
+    elif list_data[right] == key:
+        return right
+    else:
+        return search(list_data, key, left + 1, right - 1)
+
+
+if __name__ == "__main__":
+    import doctest
+
+    doctest.testmod()
diff --git a/searches/simple_binary_search.py b/searches/simple_binary_search.py
index 1d898e2d9ee0..b6215312fb2d 100644
--- a/searches/simple_binary_search.py
+++ b/searches/simple_binary_search.py
@@ -42,7 +42,7 @@ def binary_search(a_list: List[int], item: int) -> bool:
     if item < a_list[midpoint]:
         return binary_search(a_list[:midpoint], item)
     else:
-        return binary_search(a_list[midpoint + 1:], item)
+        return binary_search(a_list[midpoint + 1 :], item)
 
 
 if __name__ == "__main__":